액티비티에 붙여져 있는 View 를 구하는 방법 3가지에 대해


소개하고자 한다.






1. View 객체에 미리 담는 방법.


View view = getLayoutInflator.from(this).inflate(R.layout.main_activity,null);

setContentView(view);


윗 방법은 View 객체에 미리 view의 정보를 담은 후,


참조하고 싶을때 view라는 변수를 통해서 참조 하면 된다.



2. findViewById를 이용하여 View 객체에 담는 방법.


setContentView(R.layout.main_activity,null);

View view = findViewById(R.id.rootView);


윗 방법은 main_activity.xml 안에 최상위 부모뷰에


id를 rootView로 선언 한 뒤, 사용하면 된다.


위와 똑같이 view로 넣었지만 혹, ViewGrop으로 사용하고 싶을시,


다운캐스팅을 해준다. 아래의 예제를 보자.



ex) 뷰그룹으로 받고 싶을시,


ViewGroup viewGroup = (ViewGroup)findViewById(R.id.rootView);


ex) 부모뷰가 특정 ViewGroup일시 - FrameLayout


FrameLayout frameLayout = (FrameLayout)findViewById(R.id.rootView);



3. Activity의 context 정보로 구하는 방법


View view = context.getWindow().getDecorView() ;



윗 방법은 Activity의 context로 액티비티에 붙여져 있는 view를 구하는 방법이다.


이것 역시 ViewGroup 또는 특정 ViewGroup으로 받고 싶을때는 다운캐스팅 해준다.


아래의 예제를 보자.



ex) 뷰그룹으로 받고 싶을시,


ViewGroup viewGroup = ((ViewGroup)context.getWindow().getDecorView()) ;


ex) 부모뷰가 특정 ViewGroup일시 - FrameLayout


FrameLayout frameLayout = ((FrameLayout)context.getWindow().getDecorView()) ;



포스팅이 도움 되셨다면, 커피 한잔 후원해주세요!
더 좋은 포스팅 작성에 큰 힘이 됩니다.

Buy me a coffeeBuy me a coffee

+ Recent posts