私はNavigationDrawerテンプレートを使用しています。フラグメントを切り替えることができます。しかし、私はすべての断片でツールバーの機能を変更したい。私のフラグメント内で一意のツールバーアクションを設定するにはどうすればよいですか?ナビゲーション・ドロワー・テンプレートでフラグメントをツールバーに変更
答えて
はあなたのNavigationView
NavigationItemSelected ClickListener
とそれにこのような何かをの割り当てツールバー。 次のようなもの:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_close"
android:title=""
android:icon="@drawable/ic_close_white_24px"
app:showAsAction="always|collapseActionView"/>
<item android:id="@+id/..."
android:title=""
android:icon="..."
app:showAsAction="always|collapseActionView"/>
</menu>
setHasOptionsMenu(true)
onCreate()
各断片の方法でできると思います。そして通常はovverideメソッドonCreateOptionsMenu()
です。私は、メニューを作成するときにいつもするようにメニューや他のものを膨らませることを意味します。
これで、DrawerListenerをDrawerLayoutに設定する必要があるということです。リスナーのovverideメソッドonDrawerOpened()
とonDrawerClosed()
にそれぞれinvalidateOptionsMenu()
を呼び出す必要があります。
android.support.v7.app.ActionBarDrawerToggle
をDrawerListenerとして使用してください。ここではその
myDrawerLayout.addDrawerListener(new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close) {
public void onDrawerClosed(View view) {
super.onDrawerClosed(view)
invalidateOptionsMenu();
}
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
invalidateOptionsMenu();
}
};
のようなメソッドに渡しR.string.drawer_closeとdrawer_openは「閉じる」に等しいリソースで文字列だけでは、それぞれ「オープン」です。あなたがここで読むことができるナビゲーション引き出しの詳細:Navigation Drawers。
また、各フラグメントで一意のツールバーを使用することはできません。私はツールバーのインスタンスを意味します。少なくともそれは私のために働いたことはありません。代わりにツールバーを一度作成してから、各フラグメントの内容を変更してください。すべてのフラグメントからツールバーにアクセスするには、RetainFragmentなどのヘルパーフラグメントを1つ使用し、setRetainInstance(true)を使用します。このフラグメントを破棄せずに、さまざまな変数やオブジェクトを保存するのに役立ちます。より詳細なあなたは私の記事で読むことができます:
switch (e.menuItem.itemId)
{
case (R.id.nav_home):
e.MenuItem.SetChecked(true);
toolbar.inflateMenu(R.menu.newMenu);
break;
case (R.id.nav_two):
e.MenuItem.SetChecked(true);
toolbar.inflateMenu(R.menu.newMenu2);
break;
}
そして、それぞれがあなたのためのさまざまなコントロールが含まれていることを、あなたのメニューフォルダに新しいXMLファイルを作成します。Simple trick to use and manage Toolbar with Fragments in Android
ありがとうございますが、あなたは私の意図を強調していません –
- 1. ナビゲーション・ドロワーでフラグメントを変更するエラー
- 2. ナビゲーション・ドロワー・フラグメント間の変更が遅い
- 3. ナビゲーション・ドロワーにフラグメントを導入
- 4. ナビゲーション・ドロワー・アクティビティー、フラグメントを送信
- 5. ナビゲーション・ドロワー(UWP)からレイアウトを変更
- 6. ナビゲーション・ドロワー/スライディング・メニューとしてのフラグメント
- 7. フラグメントとナビゲーション用ツールバーの別のツールバー
- 8. ナビゲーション・ドロワーを使用してフラグメント(?)のレイアウトまたはアクティビティを変更する
- 9. ナビゲーション・ドロワーにフラグメントを使用できません
- 10. ツールバーのボタンでナビゲーション・ドロワーが開かない
- 11. ナビゲーション・ドロワーが閉じる前にフラグメントをロード
- 12. ナビゲーション・ドロワーのフラグメントの代わりにアクティビティーを実装
- 13. ナビゲーション・ドロワーでフラグメントが開かないのはなぜですか?
- 14. ナビゲーション・ドロワー - Webアプリケーション
- 15. ナビゲーション・ドロワーにフラグメントが表示されない
- 16. メイン・フラグメントのボタンをクリックしてナビゲーション・ドロワーを開く方法は?
- 17. ボタンでナビゲーション・ドロワーを開く
- 18. ナビゲーション・ドロワー・アクティビティー・テンプレートを既存のプロジェクトに追加する
- 19. フラグメントのナビゲーション・ドロワーをアクティビティーから取得する
- 20. フラグメント付きのナビゲーション・ドロワー・アイテムを同期する
- 21. ナビゲーション・ドロワーのフラグメント・ビューを置き換える問題
- 22. ナビゲーション・ドロワーをツールバーの下に置くことができません
- 23. ナビゲーション・ドロワー内の別のフラグメントから前のフラグメントを呼び出す
- 24. ナビゲーション・ドロワーのカスタム・アイコンの色を変更するAndroidスタジオ
- 25. 個々のナビゲーション・ドロワー・アイコンのアイコンの色を変更する
- 26. ナビゲーション・ドロワー・メニューのツールバーでアクティビティーの内容を取得できません
- 27. マイ・ナビゲーション・ドロワーのエラー
- 28. ナビゲーション・ドロワーinリアクト・ネイティブ
- 29. Androidナビゲーション・ドロワーのスイッチ
- 30. ナビゲーション・ドロワー内のフラグメントとアクティビティー間の通信方法は?
フラグメントごとに異なるオプションメニューを意味しますか? – ElDuderino
ええ、ちょうどすべてのフラグメントにアクティビティのツールバーがあります –
フラグメント間の通信を使用して、必要に応じてツールバーのオプションを決定してみてください。 – sumandas