actionBarDrawerToggle.setDrawerIndicatorEnabled(false) 后退箭头没有动作
Posted
技术标签:
【中文标题】actionBarDrawerToggle.setDrawerIndicatorEnabled(false) 后退箭头没有动作【英文标题】:actionBarDrawerToggle.setDrawerIndicatorEnabled(false) back arrow has no action 【发布时间】:2020-05-31 18:11:55 【问题描述】:我使用导航抽屉,我想为内部片段禁用它。 我使用以下代码来设置抽屉:
private void initSideMenu()
actionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.Open, R.string.Close);
drawerLayout.addDrawerListener(actionBarDrawerToggle);
actionBarDrawerToggle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
binding.nv.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener()
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item)
switch (item.getItemId())
case R.id.menuData:
selectPersonalDataFragment();
break;
case R.id.menuBlogPosts:
closeDrawerAndNavigateTo(new BlogPostFragment(), true);
break;
case R.id.menuSettings:
closeDrawerAndNavigateTo(new BackgroundImageFragment(), true);
break;
return true;
);
要禁用导航抽屉,我使用以下代码:
@Override
public void setDrawerEnabled(boolean enabled)
Log.d(TAG, "setDrawerEnabled: " + enabled);
if(enabled)
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
actionBarDrawerToggle.setDrawerIndicatorEnabled(true);
else
actionBarDrawerToggle.setDrawerIndicatorEnabled(false);
actionBarDrawerToggle.setToolbarNavigationClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
onBackPressed();
);
汉堡图标变为后退箭头,但此箭头没有任何功能。那么为什么我的听众不听呢?
【问题讨论】:
【参考方案1】:经过大量尝试我发现,我不必设置工具栏导航单击侦听器,而是必须覆盖onSupportNavigateUp()
:
更改了 setDrawerEnabled():
@Override
public void setDrawerEnabled(boolean enabled)
Log.d(TAG, "setDrawerEnabled: " + enabled);
if(enabled)
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
actionBarDrawerToggle.setDrawerIndicatorEnabled(true);
else
actionBarDrawerToggle.setDrawerIndicatorEnabled(false);
新覆盖的 onSupportNavigateUp():
@Override
public boolean onSupportNavigateUp()
onBackPressed();
return true;
【讨论】:
以上是关于actionBarDrawerToggle.setDrawerIndicatorEnabled(false) 后退箭头没有动作的主要内容,如果未能解决你的问题,请参考以下文章