View.getRootView ()로 루트 뷰를 얻는 방법을 알고 있습니다. 또한 onClick
인수가 View 인 버튼의 이벤트에서 보기를 얻을 수 있습니다 . 하지만 어떻게 내가 얻을 수있는 보기 에서 활동을 ?
답변
활동에 대한 루트보기가 필요한 경우 (여기에 내용을 추가 할 수 있음)
findViewById(android.R.id.content).getRootView()
또한 일부 장치에서는 사용해야한다고보고되었습니다.
getWindow().getDecorView().findViewById(android.R.id.content)
대신에.
Booger가보고 한 바와 같이 일부 기기에서는 탐색 표시 줄 (뒤로 버튼 등) 뒤에있을 수 있지만 대부분의 기기에서는 그렇지 않은 것 같습니다.
당신이 setContentView()
방법을 사용하여 활동에 추가 한보기를 얻을 필요가 있다면 pottedmeat이 쓴대로 사용할 수 있습니다
final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
.findViewById(android.R.id.content)).getChildAt(0);
그러나 XML 레이아웃에서 ID를이보기로 설정하고 대신이 ID를 사용하는 것이 좋습니다.
답변
이것은 내가 할당 된 XML 파일에서 발견 된 루트보기를 얻는 데 사용하는 것입니다 setContentView
.
final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
.findViewById(android.R.id.content)).getChildAt(0);
답변
나는 이것을 안드로이드 4.0.3에서 테스트했다.
getWindow().getDecorView().getRootView()
우리가 얻는 것과 같은 견해를 주다
anyview.getRootView();
com.android.internal.policy.impl.PhoneWindow$DecorView@#########
과
getWindow().getDecorView().findViewById(android.R.id.content)
아이에게주는
android.widget.FrameLayout@#######
확인 해주세요.
답변
현재 활동에서 루트 뷰를 가져옵니다.
우리의 활동 안에서 우리 root
는 다음과 같은 견해를 얻을 수 있습니다 .
ViewGroup rootView = (ViewGroup) ((ViewGroup) this
.findViewById(android.R.id.content)).getChildAt(0);
또는
View rootView = getWindow().getDecorView().getRootView();
답변
Kotlin에서는 조금 더 짧게 할 수 있습니다.
val rootView = window.decorView.rootView
답변
누군가 더 쉬운 방법이 필요한 경우를 대비하여 :
다음 코드는 전체 활동을 보여줍니다.
View v1 = getWindow().getDecorView().getRootView();
액티비티에서 certian 뷰를 얻으려면 (예 : 액티비티 내부의 imageView) 가져 오려는 뷰의 ID를 추가하십시오.
View v1 = getWindow().getDecorView().getRootView().findViewById(R.id.imageView1);
희망이 누군가에게 도움이되기를 바랍니다.
답변
anyview.getRootView();
가장 쉬운 방법입니다.