2

次の階層を持つアプリケーションがあります。

MainActivity (Shows list of dates) 
    | 
ViewPagerFragment (Shows list of children for those dates)
    | 
ChildFragment (Detail View)

デザイン サポート ライブラリからナビゲーション ビューを実装しようとしていますが、ツールバーの実際のナビゲーションが機能しません。

メイン アクティビティ ツールバーは次のとおりです。

主なアクティビティ ナビゲーション

メイン アクティビティから移動した後の ViewPagerFragment を次に示します。[戻る] ボタンがないことに注意してください...

子アクティビティ ナビゲーション

目的のツールバーは次のとおりです。 希望のツールバー

次のコードを使用してフラグメントを追加しています。

    getSupportFragmentManager()
            .beginTransaction()
            .replace(R.id.content_frame, fragment, fragment.getClass().getName())
            .addToBackStack(fragment.getClass().getName())
            .commitAllowingStateLoss();

アクティビティの起動に関連するコードは次のとおりです。

protected void setupActionBar() {
    setSupportActionBar(toolbar);

    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.setDisplayHomeAsUpEnabled(true);
    }
}

そして私のナビゲーションドロワーのセットアップ:

protected void setupNavigationDrawer() {
    navigationView.setNavigationItemSelectedListener(this);
    actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
    drawerLayout.setDrawerListener(actionBarDrawerToggle);
    actionBarDrawerToggle.syncState();
}

デバイスのハードウェアの戻るボタンを押すと、正しく戻ります。引き出しのトグルに戻る矢印が表示されないようです... 何か提案はありますか?

4

2 に答える 2

3

ナビゲーション ドロワー アイコンを無効にして別のアイコンを表示するにはsetDrawerIndicatorEnabled(false)ActionBarDrawerToggle.

setHomeAsUpIndicator()「ハンバーガー」アイコンの代わりに使用するアイコンを指定するために呼び出す必要がある場合もあります。

于 2015-07-10T15:10:51.443 に答える
1

Activity の ActionBar に到達しようとしましたか?

onViewCreated で:

Toolbar mToolbar = (Toolbar) view.findViewById(R.id.toolbar);
((Activity) getActivity()).setSupportActionBar(mToolbar);
((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
于 2015-07-10T13:52:32.517 に答える