Mar*_*991 16 android navigation-drawer
标题说明了一切.当我打电话给mDrawerToggle.setDrawerIndicatorEnabled(false)
我时,我不想再显示" hamburger
"图标,而是向后导航箭头.
不幸的是,当我调用此方法时,标题显示时没有向后箭头,也没有"汉堡包"图标.再次设置drawerIndicatorEnabled
为true后,它再次显示"汉堡包"图标.
我设置getSupportActionBar().setDisplayHomeAsUpEnabled(true)
和 getSupportActionBar().setDisplayShowHomeEnabled(true)
编辑: 基本上这里建议的解决方案:更改抽屉图标背对背箭头不知何故不给我后退箭头.
有谁知道这个问题的解决方案?非常感谢你!
afr*_*ish 37
经过数小时的试验和错误,我想出了一个解决方案,允许从"汉堡包"切换到"箭头"并返回.这是非常奇怪和不自然的,不要问我为什么它以这种方式工作,但它的工作原理.此外,这是唯一允许我这样做的解决方案,没有别的办法.
我只有一个片段活动.当我从一个片段切换到另一个片段时,我在我的活动中设置了布尔变量displayingInnerFragment
.对于那些片段,displayingInnerFragment == true
我在左上角显示"箭头",对于所有其他片段,我显示"汉堡包".我在切换到任何片段之前执行以下代码:
ActionBar actionBar = getSupportActionBar();
if (displayingInnerFragment) {
actionBar.setDisplayHomeAsUpEnabled(false);
drawerToggle.setDrawerIndicatorEnabled(false);
actionBar.setDisplayHomeAsUpEnabled(true);
} else {
drawerToggle.setDrawerIndicatorEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)
注意actionBar.setDisplayHomeAsUpEnabled()
在一个分支中的双重调用.这是drawerToggle.setDrawerIndicatorEnabled(false)
工作所必需的.否则它将无法正常工作.所有其他选项要么不显示"箭头",要么在某个时刻隐藏"箭头"或"汉堡包".
小智 6
使用这样:
mDrawerToggle.setHomeAsUpIndicator(R.drawable.abc_ic_ab_back_mtrl_am_alpha);
mDrawerToggle.setDrawerIndicatorEnabled(false);
mDrawerToggle.syncState();
Run Code Online (Sandbox Code Playgroud)
这个问题困扰了我一段时间,因为我知道使用了默认的向上图标(通过查看 的来源ActionBarDrawerToggle
),并且我希望它采用 的颜色设置R.attr.colorControlNormal
。令人惊讶的是,这两行的顺序对于实际显示向上箭头至关重要:
mDrawerToggle.setDrawerIndicatorEnabled(false);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)
setDrawerIndicatorEnabled
必须在调用您ActionBarDrawerToggle
之前 setDisplayHomeAsUpEnabled
调用您ActionBar
。必须调用这两行才能显示默认(有色)箭头。
归档时间: |
|
查看次数: |
7531 次 |
最近记录: |