2017-06-08 17 views
0

私はbottonNavigationViewとフラグメントを持つレイアウトを持っています。どのようにして各フラグメントに対して異なるツールバーメニューを表示できますか?私はすでにいくつかのことを試みました。BottonNavigationViewとフラグメントの異なるメニューツールバー

フラグメントでは、私はヒースを使用しました。

((AppCompatActivity) getActivity()).getSupportActionBar() 

これには二つの方法以下の追加、あなたのフラグメントで

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.cspm.ventas6.cspm.v_fragments.f_clientes" 
    android:focusable="false"> 

    <LinearLayout 
     android:id="@+id/con_listview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:descendantFocusability="blocksDescendants" 
     android:focusable="false"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appBar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/ThemeOverlay.AppCompat.ActionBar"> 

     <!-- Toolbar is the actual app bar with text and the action items --> 
     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|enterAlways" /> 
    </android.support.design.widget.AppBarLayout> 

     <ListView 
      android:id="@+id/client_list" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:divider="@null" /> 
    </LinearLayout> 
</FrameLayout> 
+0

https://stackoverflow.com/questions/30721664/android-toolbarと-adding-menu-items-for-different-fragments –

+0

フラグメントを変更すると、これらの異なるメニューが膨張します。 – rupinderjeet

+0

どのようにすればいいですか、いくつかのコードで助けてください –

答えて

0

フラグメントのレイアウトです。

@Override 
public void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    // tells the fragment that fragment will use toolbar's options menu 
    setHasOptionsMenu(true); 
} 

/** 
* this method is called when fragment prepares options menu, 
* simply, inflate your menu and call super 
*/ 
@Override 
public void onPrepareOptionsMenu(Menu menu) { 
    getActivity().getMenuInflater().inflate(R.menu.menu_res_id, menu); 
    super.onPrepareOptionsMenu(menu); 
} 

メニューリソースをmenu_res_idに変更してください。

そして、あなただけの現在のメニューから項目を削除したい場合は、その行置き換える

getActivity().getMenuInflater().inflate(R.menu.menu_res_id, menu); 

menu.findItem(R.id.action_search).setVisible(false); 
+0

このコードではわかりませんが、各フラグメントのツールバーのメニューを変更できます –

+0

申し訳ありませんが、bottomNavigationViewのメニューを変更したいと思っていました。私はオプションメニューの答えを更新しました – rupinderjeet

関連する問題