2014-12-16 4 views
0

Я использую конструкцию материалов (Android Support V7 AppCompat) и используя панель инструментов поддержки вместо ActionBar. Но я заметил, что на предыдущей версии Android кнопка «Назад» при добавлении в задний стек «Фрагментная транзакция» автоматически добавила кнопку «Назад», теперь она исчезла. Единственный способ, которым я нашел показать кнопку «Назад», - это использование Activity и вызов его.Отсутствует Материал задней кнопки Тема

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

Спасибо!

EDIT

Я использую 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, чтобы показать кнопку «Домой» и кнопку «Назад».

Благодаря

+0

Вы пробовали это решение? Я считаю, что это то, что вы ищете (не является материальным, но он тоже должен работать): http://stackoverflow.com/questions/13086840/actionbar-up-navigation-with-fragments – Mou

+0

Да, я попробовал, т работы. – NemesisDoom

ответ

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(); 
      } 
     } 
    }; 

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

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

0

Использование ActionBar#setDisplayShowHomeEnabled

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

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

    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    //... 

} 

 Смежные вопросы

  • Нет связанных вопросов^_^