Недостающая тема материала кнопки "Назад"

Я использую Material Design (Android Support V7 AppCompat) и использую панель инструментов поддержки вместо ActionBar. Но я заметил, что кнопка "Назад" исчезла, в предыдущих версиях Android при добавлении в задний стек транзакции фрагмента автоматически добавлялась кнопка "Назад", теперь она исчезла. Единственный способ показать кнопку "Назад" - это использовать Activity и вызывать ее.

Кто-то нашел и решил это?

Спасибо!

РЕДАКТИРОВАТЬ

Я использую DrawerLayout и ActionBarDrawerToggle, теперь я использовал ответ, который был дан, и использовал это:

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

FragmentManager это от android.support.v4. Теперь при возврате на главный экран "Дом" (кнопка "Гамбургер") исчезает. Теперь это потому, что "setDisplayHomeAsUpEnabled" находится в состоянии "ложь". Но как мне снова отобразить кнопку "Домой"? На предыдущих версиях Android достаточно было просто добавить задний стек и иметь задний стек равным 0, чтобы отобразить кнопку "Домой" и Кнопка Назад.

Спасибо

2 ответа

Решение

Итак, при использовании 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();
            }
        }
    };

Действительно странно, потому что в Native Versions или Android Support V4 Library мне не нужно было делать это, чтобы показать кнопку "Назад" и исчезнуть, чтобы открыть кнопку "Домой",

Спасибо вам, ребята!

Использовать ActionBar#setDisplayShowHomeEnabled

Таким образом, вы можете включить кнопку "Назад" следующим образом:

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

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    //...

}
Другие вопросы по тегам