禁用工具栏的向上按钮

时间:2015-01-22 02:45:12

标签: android

如何禁用默认" UP" ic_launcher旁边的工具栏中的按钮?我想只在左边留下ic_launcher。

enter image description here

6 个答案:

答案 0 :(得分:6)

如果您正在使用Toolbarandroid.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>