18

활동에 대한 main_fragment_container를 대체하는 탐색 서랍이있는 활동이 있습니다. 조각 중 하나가 표시되면 도구 모음의 레이아웃을 변경하고 회 전자를 추가하고 싶습니다 (조각이 숨겨져있을 때 제거).표시된 단편에 따라 도구 모음 레이아웃을 바꿉니다.

내 레이아웃은 다음과 같습니다

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:sothree="http://schemas.android.com/apk/res-auto" 
android:id="@+id/main_parent_view" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:fitsSystemWindows="true"> 

<android.support.v7.widget.Toolbar 

    android:id="@+id/toolbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    sothree:theme="@style/AppTheme.ActionBar" /> 

<android.support.v4.widget.DrawerLayout 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <!-- Main layout --> 
    <FrameLayout 
     android:id="@+id/main_fragment_container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <!-- Nav drawer --> 
    <fragment 
     android:id="@+id/fragment_drawer" 
     android:name="com.idob.mysoccer.ui.DrawerFragment" 
     android:layout_width="@dimen/navigation_drawer_width" 
     android:layout_height="match_parent" 
     android:layout_gravity="left|start" /> 
</android.support.v4.widget.DrawerLayout> 

+0

이렇게하면 도구 모음 아래에서 서랍을 열 수 있습니다. [네비게이션 서랍은 머티리얼 디자인에서 지정되었습니다.] (http://www.google.com/design/spec/patterns/navigation-drawer.html)는 툴바와 겹치지 만 (Google Play조차 현재이 작업을 수행하지는 않습니다). – Tapirboy

+0

의도적으로했는데, 내 디자인에서 툴바 위에 서랍이 잘 보이지 않습니다. – Idob

답변

39

회원님이 달성하지만 가능하다면, 당신은 조각 도구 모음을 사용자 정의시키기보다는 대체하여이 문제를 접근해야 생각 하려는지 확인 그것. 귀하의 필요에 따라 도구 모음에 조각을 숨기거나 표시 할 수 있습니다.

조각 OnCreateView()setHasOptionsMenu(true);을 추가하고이 같이 onOptionsMenuCreated()

를 오버라이드 (override) :

@Override 
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    setHasOptionsMenu(true); 
    return inflater.inflate(R.layout.result_list, container, false); 
} 

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.this_frag_menu, menu); 
    super.onCreateOptionsMenu(menu, inflater); 
} 

도구 모음에 더 구체적인 일을 할 필요가있는 경우에 당신이

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);를 사용하여 인스턴스를 얻을 수 있습니다

+0

두 개의 다른 도구 모음, 표준 도구 모음과 제목 대신 회 전자가있는 도구 모음이 있습니다. 조각 중 하나가 표시되면 회 전자와 함께 도구 모음에 표시하기 만하면됩니다. – Idob

+3

바꾸기보다는 도구 모음을 편집하는 것이 좋습니다. 활성 조각에 따라 제목과 회 전자를 숨기거나 표시하십시오. – Tapirboy

+0

하나의 툴바 구현이 효과적입니다! 감사합니다 답변을 편집하십시오. 답변으로 표시합니다 – Idob