如何移除工具栏的左右填充?

3

左右内边距会自动添加。这是我使用的代码。我正在运行Android版本6.0.1的应用程序。

 <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="45dp"
        app:contentInsetLeft="0dp"
        app:contentInsetStart="0dp"
        app:layout_scrollFlags="scroll|enterAlways">

1
请检查父布局中是否有填充标记。有时候 Android 活动的根布局(父布局)上会有一些填充标记。 - Prakhar Singh
父布局没有任何填充。 - Anirudh
5个回答

8

使用方法如下:

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:minHeight="45dp"
        app:contentInsetLeft="0dp"
        app:contentInsetStart="0dp"
        android:contentInsetStart="0dp"               //Add this
        android:contentInsetLeft="0dp"               //Add this
        app:contentInsetStartWithNavigation= "0dp"  //Add this too
        app:layout_scrollFlags="scroll|enterAlways">

修改了答案,请尝试这个。 - tahsinRupam

2
我添加了下面这行代码,然后它就起作用了。
 android:padding="0dp"

1

尝试将contentInsetStartWithNavigation设置为0dp。与contentInsetStart一样,默认情况下,contentInsetStartWithNavigation也是16dp。请尝试以下操作:

    <android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="45dp"
    app:contentInsetLeft="0dp"
    app:contentInsetStart="0dp"
    app:contentInsetStartWithNavigation="0dp"
    app:layout_scrollFlags="scroll|enterAlways">

此外,如果您还没有尝试过,请将“app”替换为“android”。有时候我们会试图解决不存在的兼容性问题。请尝试以下操作:
   <android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="45dp"
    android:contentInsetLeft="0dp"
    android:contentInsetStart="0dp"
    android:contentInsetStartWithNavigation="0dp"
    android:layout_scrollFlags="scroll|enterAlways">

您还可以在活动文件中硬编码工具栏属性。如果这样做,您将使用填充。
     Toolbar tb = (Toolbar)findViewById(R.id.toolbar);
     tb.setPadding(padding, tb.getPaddingTop(), padding, tb.getPaddingBottom());

对不起,没有看到您已经找到了解决方案。原来是显而易见的。 - user3324792

0

我认为解决这个问题的最佳方法是创建一个自定义工具栏:

首先创建一个自定义工具栏:

class CustomToolbar(context: Context): androidx.appcompat.widget.Toolbar(context) {

    constructor(context: Context , attrs: AttributeSet): this(context)
    constructor(context: Context , attrs: AttributeSet, defStyleAttr: Int): this(context)

    override fun getContentInsetStart(): Int {
        return 0
    }

    override fun getContentInsetEnd(): Int {
        return 0
    }

    override fun getContentInsetLeft(): Int {
        return 0
    }

    override fun getContentInsetRight(): Int {
        return 0
    }

    override fun getCurrentContentInsetStart(): Int {
        return 0
    }

    override fun getCurrentContentInsetEnd(): Int {
        return 0
    }

    override fun getCurrentContentInsetLeft(): Int {
        return 0
    }

    override fun getCurrentContentInsetRight(): Int {
        return 0
    }
}

现在你可以在任何地方使用它,而不会遇到任何问题:

<com.example.CustomToolbar
   android:id="@+id/toolbar"
   android:layout_width="match_parent"
   android:layout_height="?actionBarSize">
  //your views or layouts
</com.example.CustomToolbar>

请注意,com.example 是我的包名,您必须替换为您的项目包名。

0

检查父元素,如果包含工具栏,请也检查其父元素。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接