Home键从抽屉图标切换到了上旋转按钮 - 只有当NAV打开抽屉
问题描述:
我在我的应用程序中实现导航抽屉,在大多数情况下它似乎是工作确定。Home键从抽屉图标切换到了上旋转按钮 - 只有当NAV打开抽屉
我home键设置为导航抽屉图标(汉堡),这仍然存在跨正常轮换。如图1(人像)和图像2(旋转后的风景)所示。
但是如果我打开抽屉资产净值,再旋转屏幕,然后关闭导航抽屉,主页按钮变为了按钮,可以在图像中可以看出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
不幸的是没有工作拆卸
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
和mDrawerToggle.setDrawerIndicatorEnabled(true);
,感谢您的帮助反正。欢迎提出建议 – AF1001getSupportActionBar()。setDisplayHomeAsUpEnabled(false);用于隐藏默认后退按钮。 –
我决定在onDrawerClose事件中设置DisplayHomeAsUpEnabled(false),它现在正在工作。谢谢。 – AF1001