如何禁用默认" UP" ic_launcher旁边的工具栏中的按钮?我想只在左边留下ic_launcher。
答案 0 :(得分:6)
如果您正在使用Toolbar
(android.support.v7.widget.Toolbar
或本机)以禁用导航按钮,请致电:
toolbar.setNavigationIcon(null);
来自文档:
/**
* Set the icon to use for the toolbar's navigation button.
* ...
* @param icon Drawable to set, may be null to clear the icon
*/
public void setNavigationIcon(@Nullable Drawable icon) { ... }
答案 1 :(得分:1)
Alex K建议的是屏幕底部导航栏中的“返回”按钮 - 而不是屏幕左上角的“启动”图标。
对于ActionBar up图标,您需要添加以下内容:
getActionBar().setDisplayHomeAsUpEnabled(false);
此外,在manifest.xml文件中,如果有以下内容,您可以删除父元数据:
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.ParentActivity" />
答案 2 :(得分:0)
将此代码插入要在工具栏中隐藏UP按钮的活动:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// remove UP button
if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
}
}
答案 3 :(得分:0)
我遇到了类似的问题,空的navigationIcon保留了左侧空间。
在app:contentInsetLeft="0dp"
的xml中使用<android.support.v7.widget.Toolbar>
,它会修复
答案 4 :(得分:0)
清单中有两种方式可以使向上导航显示在AppBar中。正如@Kasira所说:
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.ParentActivity" />
如果<activity>
标记包含:android:parentActivityName=".activity.ParentActivtyName"
答案 5 :(得分:0)
我做了很多在线搜索,但找不到解决此问题的任何方法。因此,我在源代码中仔细研究了一下,得出了这个解决方案:
val field = Class.forName("androidx.appcompat.widget.Toolbar").getDeclaredField("mNavButtonView")
field.isAccessible = true
val toolbarUpButton = field.get(findViewById(R.id.main_toolbar)) as? ImageButton
toolbarUpButton?.isEnabled = false
这不会隐藏向上按钮,而是将其禁用;如果要指示该按钮已禁用,则可以使用以下选择器作为可绘制对象的颜色:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/enabled" android:state_enabled="true"/>
<item android:color="@color/disabled" android:state_enabled="false"/>
<item android:color="@color/enabled" />
</selector>