2016-05-07 1 views
3

Я использую MaterialDrawer от Майка Пенза, и я столкнулся с проблемой. У меня есть Activity (AppCompat) и 3 Fragmnts. Activity содержит все fragments. В fragment 2 и 3 я включить Назад button в OnCreateMaterialDrawer назад кнопка во фрагменте

((AppCompatActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

и Activity

@Override 
    public void onBackPressed() { 
     if (drawer.isDrawerOpen()) 
      drawer.closeDrawer(); 
     if (getFragmentManager().getBackStackEntryCount() == 1) { 
      getSupportActionBar().setDisplayHomeAsUpEnabled(false); 
      drawer.getActionBarDrawerToggle().syncState(); 
      getFragmentManager().popBackStack(); 
     } else if (getFragmentManager().getBackStackEntryCount() > 0) 
      getFragmentManager().popBackStack(); 
     else 
      super.onBackPressed(); 
    } 

В активном fragment 2 и 3 click на Back Button приводит к открытию Drawer & Как можно отключить звоните Drawer в 2 и 3 fragment, нажав кнопку Back?

Когда я использовал стандарт Drawer У меня была тема с ActionBar, таких проблем нет.

UPD мне нужно нажать на переключение кнопки Назад в панели инструментов, не смартфон физической кнопки

+0

попробовать этот ответ о stackoverflow ............ http: //stackoverflow.com/ a/7992472/3678308 –

ответ

1

Изменить

if (drawer.isDrawerOpen()) 
    drawer.closeDrawer(); 
if (getFragmentManager().getBackStackEntryCount() == 1) { 
    getSupportActionBar().setDisplayHomeAsUpEnabled(false); 
    drawer.getActionBarDrawerToggle().syncState(); 
    getFragmentManager().popBackStack(); 
} 

К

if (drawer.isDrawerOpen()) 
    drawer.closeDrawer(); 
else if (getFragmentManager().getBackStackEntryCount() == 1) { 
    getSupportActionBar().setDisplayHomeAsUpEnabled(false); 
    drawer.getActionBarDrawerToggle().syncState(); 
    getFragmentManager().popBackStack(); 
} 

Вы хорошо идти

+0

вы правы, но это не решение – abbath0767