我已经做了一个导航栏,包括一个片段内的抽屉布局。一切工作,抽屉滑出从左边和一切。
当应用程序第一次打开时,我看到一个汉堡包图标,当我完全打开并关闭回来时,汉堡包图标会变成一个左箭头。
我不明白为什么会发生这种事。
下面是代码:
活动:
// Drawer
drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
// toolbar
toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setTitle("Blah");
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
// navigation drawer
NavigationDrawerFragment navigationDrawerFragment = (NavigationDrawerFragment) getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
navigationDrawerFragment.setUp(R.id.navigation_drawer, drawerLayout, toolbar);
上面调用的setUp函数:
public void setUp(int fragmentId, DrawerLayout drawerLayout, Toolbar toolbar) {
this.navigationDrawerView = getActivity().findViewById(fragmentId);
this.drawerLayout = drawerLayout;
actionBarDrawerToggle = new ActionBarDrawerToggle(getActivity(), drawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close) {
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
getActivity().invalidateOptionsMenu();
}
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerOpened(drawerView);
getActivity().invalidateOptionsMenu();
}
};
drawerLayout.setDrawerListener(actionBarDrawerToggle);
drawerLayout.post(new Runnable() {
@Override
public void run() {
actionBarDrawerToggle.syncState();
}
});
}
附言:我是安卓编程的新手。我是通过youtube的教程来实现这一点的。我有一个公平的想法是怎么回事,但请(如果可能的话)多描述一点,以帮助我遵循它。
3条答案
按热度按时间lf5gs5x21#
您的方法onDrawerClosed错误。您正在调用super.onDrawerOpened,并且必须是super.onDrawerClosed(drawerView);
在这种方式下
tjjdgumg2#
只是改变
进入
vqlkdk9b3#
你可以用这个方法来设置导航与图标在整个应用程序中,我相信它会为你工作。其简单的方法
mainActivity.java