Home键从抽屉图标切换到了上旋转按钮 - 只有当NAV打开抽屉

问题描述:

我在我的应用程序中实现导航抽屉,在大多数情况下它似乎是工作确定。Home键从抽屉图标切换到了上旋转按钮 - 只有当NAV打开抽屉

我home键设置为导航抽屉图标(汉堡),这仍然存在跨正常轮换。如图1(人像)和图像2(旋转后的风景)所示。 Image 1

Image 2

但是如果我打开抽屉资产净值,再旋转屏幕,然后关闭导航抽屉,主页按钮变为了按钮,可以在图像中可以看出3. Image 3

我试图改变周围的东西,所以它不断保持汉堡包图标,但有没有运气。

我的代码为MainActivity低于。

public class MainActivity extends AppCompatActivity { 
private String[] mNavigationDrawerItemTitles; 
private DrawerLayout mDrawerLayout; 
private ListView mDrawerList; 
Toolbar toolbar; 
private String mDrawerTitle; 
private String mTitle; 
ActionBarDrawerToggle mDrawerToggle; 
private static int sNavPosition = 0; 
private static final String NAV_POSITION_KEY = "navKey"; 
private static final String TAG = MainActivity.class.getSimpleName(); 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mDrawerTitle = getTitle().toString(); 
    mTitle = getTitle().toString(); 
    mNavigationDrawerItemTitles = getResources().getStringArray(R.array.drawer_fragment_items); 
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
    mDrawerList = (ListView) findViewById(R.id.left_drawer); 
    setUpToolbar(); 
    NavDrawerItem[] navDrawerItems = new NavDrawerItem[4]; 

    navDrawerItems[0] = new NavDrawerItem(getString(R.string.nav_home)); 
    navDrawerItems[1] = new NavDrawerItem(getString(R.string.nav_aims)); 
    navDrawerItems[2] = new NavDrawerItem(getString(R.string.nav_arttrail)); 
    navDrawerItems[3] = new NavDrawerItem(getString(R.string.nav_submission)); 

    DrawerItemCustomAdapter adapter = new DrawerItemCustomAdapter(this, R.layout.drawer_list_item,navDrawerItems); 
    View header = getLayoutInflater().inflate(R.layout.drawer_header,null); 
    mDrawerList.addHeaderView(header); 
    mDrawerList.setAdapter(adapter); 
    mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); 
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
    mDrawerLayout.addDrawerListener(mDrawerToggle); 
    setUpDrawerToggle(); 
    if (savedInstanceState != null && savedInstanceState.containsKey(NAV_POSITION_KEY)){ 
     sNavPosition = savedInstanceState.getInt(NAV_POSITION_KEY); 
    } 
    new DrawerItemClickListener().selectItem(sNavPosition); 
} 

private void setUpDrawerToggle(){ 
    mDrawerToggle = new ActionBarDrawerToggle(this,mDrawerLayout,toolbar,R.string.app_name,R.string.app_name); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
    mDrawerToggle.setDrawerIndicatorEnabled(true); 
    mDrawerToggle.syncState(); 
} 



@Override 
protected void onPostCreate(@Nullable Bundle savedInstanceState) { 
    super.onPostCreate(savedInstanceState); 
    mDrawerToggle.syncState(); 
} 

private void setUpToolbar(){ 
    toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

} 



@Override 
public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) { 
    super.onSaveInstanceState(outState, outPersistentState); 
    outState.putInt(NAV_POSITION_KEY,sNavPosition); 
} 

}

我已经排除不必要的代码就点击听众进行导航。

任何帮助或建议将不胜感激。谢谢。

尝试从乌尔
setUpDrawerToggle();方法

Edit: setDisplayHomeAsUpEnabled(false) hides the default back button 
+0

不幸的是没有工作拆卸getSupportActionBar().setDisplayHomeAsUpEnabled(true);
mDrawerToggle.setDrawerIndicatorEnabled(true);,感谢您的帮助反正。欢迎提出建议 – AF1001

+0

getSupportActionBar()。setDisplayHomeAsUpEnabled(false);用于隐藏默认后退按钮。 –

+0

我决定在onDrawerClose事件中设置DisplayHomeAsUpEnabled(false),它现在正在工作。谢谢。 – AF1001