2013-10-14 3 views
0

MainActivity의 레이아웃에 FrameLayout 요소가 있는데, 여러 유형의 Fragments에 대해 "연결 지점"으로 사용됩니다.안드로이드 단편 자신의 루트보기를 대체

보기 :

<FrameLayout 
    android:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

조각 교체 :

Fragment fragment = new CoursesFragment(); 
getFragmentManager().beginTransaction().replace(R.id.main_content, fragment).commit(); 

지금 내가 (조각이 자신의 뷰를 대체) CoursesFragment에서 직접 main_content을 변경해야하는 상황입니다. 가장 좋은 방법은 무엇입니까? 안전 해요? MainActivity의 컨텍스트에 도달하여이를 변경할 수 있지만 올바른 방법인지는 알 수 없습니다.

답변

2

당신의 View가 무엇인지 모르겠지만, 가장 간단한 방법은 양쪽보기를 각각의 ViewGroup에 제공하고 '다른보기'를 setVisibility(View.GONE)에 설정하는 것입니다. 전환해야하는 경우 첫 번째로 표시된보기를 View.GONE으로 설정하고 두 번째보기는 View.VISIBLE으로 설정하면됩니다.

이렇게하면 액티비티 컨텍스트 또는 조각 관리자 hideshow 메쏘드로 해킹 할 필요가 없습니다.

+0

두 개 이상의 조각 (보기)이 있습니다. 그런 식으로 그 사이를 전환하는 것은 어색합니다. – skywall