Недостающая тема материала кнопки "Назад"
Я использую 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);
//...
}