View.getRootView ()로 루트 뷰를 얻는 방법을 알고 있습니다. 또한 onClick
인수가 View 인 버튼의 이벤트에서 보기를 얻을 수 있습니다 . 하지만 어떻게 내가 얻을 수있는 보기 에서 활동을 ?
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);
ActionBar
있습니까?
나는 이것을 안드로이드 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@#######
확인 해주세요.
누군가 더 쉬운 방법이 필요한 경우를 대비하여 :
다음 코드는 전체 활동을 보여줍니다.
View v1 = getWindow().getDecorView().getRootView();
액티비티에서 certian 뷰를 얻으려면 (예 : 액티비티 내부의 imageView) 가져 오려는 뷰의 ID를 추가하십시오.
View v1 = getWindow().getDecorView().getRootView().findViewById(R.id.imageView1);
희망이 누군가에게 도움이되기를 바랍니다.
findViewById(R.id.imageView1);
특정 뷰를 원하면 액티비티를 호출 하면됩니다.
현재 활동을 볼 수
모든 onClick에서 "view"를 사용하여 'view'를 사용하여 rootView를 가져옵니다.
보기보기 = view.getRootView ();
조각으로보기를 얻으려면
보기보기 = FragmentClass.getView ();
활동 중이라면 루트 뷰가 하나만 있다고 가정하면 다음과 같이 얻을 수 있습니다.
ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
.findViewById(android.R.id.content)).getChildAt(0);
그런 다음 실제 수업에 캐스트 할 수 있습니다.
또는 당신은 사용할 수 있습니다
getWindow().getDecorView();
여기에는 작업 표시 줄보기가 포함됩니다.보기가 작업 표시 줄보기 아래에 있습니다.
Activity
수업 에는 그러한 방법이 없습니다 .
Data Binding Library를 사용하는 사람들은 현재 활동의 근본을 얻으려면 다음을 사용하십시오.
View rootView = dataBinding.getRoot();
Kotlin 사용자의 경우 훨씬 간단합니다.
val rootView = dataBinding.root
setContentView()
제공 한 뷰가 이미 루트입니다. 해당 뷰의 핸들이 필요한 경우 XAML에 ID를 입력하면됩니다findViewById()
.