0

Material Design (Android Support V7 AppCompat) を使用し、ActionBar の代わりに Support Toolbar を使用しています。しかし、以前のバージョンの Android では、フラグメント トランザクションをバック スタックに追加すると、[戻る] ボタンが自動的に追加されていましたが、[戻る] ボタンがなくなっていることに気付きました。戻るボタンを表示する唯一の方法は、アクティビティを使用して呼び出すことです。

誰かがこれを見つけて解決しましたか?

ありがとう!

編集

私はDrawerLayoutActionBarDrawerToggleを使用しています。今、私は与えられた答えを使用し、これを使用しました:

private FragmentManager.OnBackStackChangedListener mOnBackStackChangedListener = new FragmentManager.OnBackStackChangedListener() {
    @Override
    public void onBackStackChanged() {
        boolean displayHomeAsUpEnabled = getSupportFragmentManager().getBackStackEntryCount() > 0;
        getSupportActionBar().setDisplayHomeAsUpEnabled(displayHomeAsUpEnabled);
    }
};

FragmentManager android.support.v4 からのものです。これで、ホーム画面に戻ると、「ホーム」(ハンバーガー ボタン) が消えます。「setDisplayHomeAsUpEnabled」がfalseになっているためです...しかし、ホームボタンを再度表示するにはどうすればよいですか?、以前のバージョンのAndroidでは、バックスタックを追加してバックスタックを0にするだけでホームボタンを表示するのに十分でした戻るボタン。

ありがとう

4

2 に答える 2

1

わかりましたので、 ActionBarDrawerToggleを使用する場合、戻るボタンを表示および非表示にするために必要なことは次のとおりです。

private FragmentManager.OnBackStackChangedListener mOnBackStackChangedListener = new FragmentManager.OnBackStackChangedListener() {
        @Override
        public void onBackStackChanged() {
            boolean displayHomeAsUpEnabled = getSupportFragmentManager().getBackStackEntryCount() > 0;
            if(displayHomeAsUpEnabled){
                getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            }else{
                getSupportActionBar().setDisplayHomeAsUpEnabled(false);
                mDrawerToggle.syncState();
            }
        }
    };

本当に奇妙なのは、ネイティブ バージョンまたは Android サポート V4 ライブラリでは、戻るボタンを表示し、それを非表示にしてホーム ボタンを表示するためにそれを行う必要がなかったためです。

君たちありがとう!

于 2014-12-16T17:17:31.517 に答える
0

ActionBar#setDisplayShowHomeEnabledを使用

したがって、次のように戻るボタンを有効にできます。

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

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    //...

}
于 2014-12-16T16:23:41.577 に答える