gpt4 book ai didi

android - 抽屉导航主页图标不会恢复为汉堡包图标

转载 作者:行者123 更新时间:2023-11-29 00:10:01 25 4
gpt4 key购买 nike

我通过在抽屉布局中包含一个 fragment 制作了一个导航栏。一切正常,抽屉从左侧滑出,一切正常。

第一次打开应用程序时,我看到一个汉堡包图标。当我将其完全打开并重新关闭时,汉堡包图标变为向左箭头。

我无法弄清楚为什么会这样。

代码如下:

Activity :

 // 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);

上面调用的设置函数:

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

P.S:我是 android 编程的新手。我按照 youtube 教程来实现这一目标。我很清楚发生了什么,但请(如果可能的话)更详细地描述一下,以帮助我理解它。

最佳答案

您的方法 onDrawerClosed 是错误的。您正在调用 super.onDrawerOpened 并且必须是 super.onDrawerClosed(drawerView);

这样

@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
getActivity().invalidateOptionsMenu();
}

关于android - 抽屉导航主页图标不会恢复为汉堡包图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31038290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com