Activity의 컨텐츠 뷰를 얻는 방법? 있는지 ( setContentView ()

Activity에 contentView가 있는지 ( setContentView () 메소드가 호출 된 경우) 알기 위해 어떤 메소드를 호출해야 합니까?



답변

this.getWindow().getDecorView().findViewById(android.R.id.content)

또는

this.findViewById(android.R.id.content)

또는

this.findViewById(android.R.id.content).getRootView()

답변

레이아웃에 ID를 넣으면 다시 볼 수 있습니다.

<RelativeLayout
    android:id="@+id/my_relative_layout_id"

그리고 findViewById에서 호출하십시오 …


답변

어때요?

View view = Activity.getCurrentFocus();

답변

시도해 볼 수 있습니다 View.getRootView().


답변

또한 호출 onContentChanged()되었을 때 해고 된 것을 재정의 할 수도 있습니다 setContentView().


답변

당신이 사용하는 경우 Kotlin

    this.findViewById<View>(android.R.id.content)
                         .rootView
                         .setBackgroundColor(ContextCompat.getColor(this, R.color.black))

답변

“isContentViewSet”메소드가 없습니다. 다음과 같이 setContentView 전에 try / catch 블록에 더미 requestWindowFeature 호출을 넣을 수 있습니다.

{
  requestWindowFeature (Window.FEATURE_CONTEXT_MENU);
  setContentView (...)
} catch (AndroidRuntimeException e) {
  // 아무것도하지 않거나 아무것도하지 않는다
}

컨텐츠 뷰가 이미 설정된 경우 requestWindowFeature에서 예외가 발생합니다.