如何禁用ic_launcher旁边的工具栏中默认的“向上”按钮?我想只保留左侧的ic_launcher。
pkwftd7m1#
如果您使用Toolbar(android.support.v7.widget.Toolbar或原生)来禁用导航按钮,只需调用:
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) { ... }
p5cysglq2#
Alex K所建议的是屏幕底部导航栏中的后退按钮-而不是屏幕左上角的向上图标。对于ActionBar up图标,您需要添加以下内容:
getActionBar().setDisplayHomeAsUpEnabled(false);
此外,在manifest.xml文件中,如果存在父元数据,则可以删除父元数据:
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.ParentActivity" />
vs91vp4v3#
将此代码插入到要隐藏工具栏上的向上按钮的Activity中:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // remove UP button if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(false); } }
sd2nnvve4#
我遇到了类似的问题,空的navigationIcon保持器人留下的空间.在<android.support.v7.widget.Toolbar>的xml中使用app:contentInsetLeft="0dp",它修复了
<android.support.v7.widget.Toolbar>
app:contentInsetLeft="0dp"
ep6jt1vc5#
在清单中有两种方式可以使Up导航出现在AppBar中。正如@Kasira所提到的:<meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.ParentActivity" />并且如果<activity>标记包含:android:parentActivityName=".activity.ParentActivtyName"
<activity>
android:parentActivityName=".activity.ParentActivtyName"
gkl3eglg6#
我在网上搜索了很多,但是我找不到任何解决这个问题的方法。所以,我在源代码中摸索了一下,得出了这个解决方案:
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>
6ioyuze27#
对于这个问题,我相信是因为您使用navigationIcon作为属性来设置toolbar上的图标。
navigationIcon
toolbar
<item name="navigationIcon">@drawable/tool_bar_title_logo</item>
使用navigationIcon作为属性设置toolbar图标时:
supportActionBar?.setDisplayHomeAsUpEnabled(false) // won't work
它将无法关闭图标的onClick。
相反,使用setIcon(R.drawable.tool_bar_title_icon)设置toolbar的图标:
setIcon(R.drawable.tool_bar_title_icon)
supportActionBar?.setIcon(R.drawable.tool_bar_title_logo) // to set the toolbar icon
然后使用以下命令禁用它:
supportActionBar?.setDisplayHomeAsUpEnabled(false)
7条答案
按热度按时间pkwftd7m1#
如果您使用
Toolbar
(android.support.v7.widget.Toolbar
或原生)来禁用导航按钮,只需调用:来自文件:
p5cysglq2#
Alex K所建议的是屏幕底部导航栏中的后退按钮-而不是屏幕左上角的向上图标。
对于ActionBar up图标,您需要添加以下内容:
此外,在manifest.xml文件中,如果存在父元数据,则可以删除父元数据:
vs91vp4v3#
将此代码插入到要隐藏工具栏上的向上按钮的Activity中:
sd2nnvve4#
我遇到了类似的问题,空的navigationIcon保持器人留下的空间.
在
<android.support.v7.widget.Toolbar>
的xml中使用app:contentInsetLeft="0dp"
,它修复了ep6jt1vc5#
在清单中有两种方式可以使Up导航出现在AppBar中。正如@Kasira所提到的:
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.ParentActivity" />
并且如果
<activity>
标记包含:android:parentActivityName=".activity.ParentActivtyName"
gkl3eglg6#
我在网上搜索了很多,但是我找不到任何解决这个问题的方法。所以,我在源代码中摸索了一下,得出了这个解决方案:
这不会隐藏向上按钮,但会禁用它。如果您希望指示该按钮已禁用,则可以使用以下选择器作为可绘制对象的颜色:
6ioyuze27#
对于这个问题,我相信是因为您使用
navigationIcon
作为属性来设置toolbar
上的图标。使用
navigationIcon
作为属性设置toolbar
图标时:它将无法关闭图标的onClick。
相反,使用
setIcon(R.drawable.tool_bar_title_icon)
设置toolbar
的图标:然后使用以下命令禁用它: