Android的API工具栏21填充Android的API工具栏21填充(Android API 2

2019-05-10 09:12发布

我如何使用Android SDK API版本21(支持库)的新工具栏摆脱微胖的?

我说的是这张图片上的红色箭头:

这里是我使用的代码:

<android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:background="?attr/colorPrimary"
        android:padding="0dp"
        android:layout_margin="0dp">

        <RelativeLayout
            android:id="@+id/action_bar_layout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="0dp"
            android:padding="0dp"
            android:background="#000000">

            <Spinner
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"/>

        </RelativeLayout>
</Toolbar>

正如你可以看到我已经将所有相关的填充为0,但仍然是围绕微调填充。 我做了错误的或者什么,我需要做的摆脱微胖的?

编辑有人质疑,为什么我试图做到这一点。

以实物设计规格,微调应该是从左侧72dp

我需要中和填充谷歌都放在那里,以便正确地把我的微调:

编辑2

按照贝恩克里斯的回答我下面设置contentInsetStart为0。对于支持库,您将需要使用的应用程序的命名空间:

<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

     <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:minHeight="@dimen/action_bar_height"
        android:background="?attr/colorPrimary"
        android:contentInsetStart="0dp"
        android:contentInsetLeft="0dp"
        app:contentInsetLeft="0dp"
        app:contentInsetStart="0dp"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

</android.support.v4.widget.DrawerLayout>

我希望这可以帮助别人,这让我困惑了好几天。

Answer 1:

左边的插图是由工具栏的引起contentInsetStart默认为16DP。

更改为72dp对齐的线条。

更新支持库v24.0.0:

为了匹配材料设计规范有一个附加属性contentInsetStartWithNavigation默认为16DP。 更改此,如果你也有一个导航图标。



Answer 2:

上面的回答是正确的,但仍然有一两件事,可能会造成问题(至少它没有为我创造的一个问题)

我用下面的,它不会对旧设备正常工作 -

android:contentInsetStart="0dp"
android:contentInsetLeft="0dp"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"

诀窍是这里只是使用下面的 -

app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"

和摆脱 -

android:contentInsetStart="0dp"
android:contentInsetLeft="0dp"

现在,它应该贯穿于所有设备正常工作。

希望能帮助到你。



Answer 3:

万一别人绊倒在这里...你可以设置填充为好,例如:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);

int padding = 200 // padding left and right

toolbar.setPadding(padding, toolbar.getPaddingTop(), padding, toolbar.getPaddingBottom());

contentInset:

toolbar.setContentInsetsAbsolute(toolbar.getContentInsetLeft(), 200);


Answer 4:

Simpley在工具栏上添加此2号线。 然后,我们得到新的去除左侧空间bcoz默认情况下它16DP。

android:contentInsetStart="0dp"
app:contentInsetStart="0dp"


Answer 5:

让你的工具,如:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/menuToolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="0dp"
android:background="@color/white"
android:contentInsetLeft="10dp"
android:contentInsetRight="10dp"
android:contentInsetStart="10dp"
android:minHeight="?attr/actionBarSize"
android:padding="0dp"
app:contentInsetLeft="10dp"
app:contentInsetRight="10dp"
app:contentInsetStart="10dp"></android.support.v7.widget.Toolbar>

您需要添加

contentInset

属性加间距

请点击此链接了解更多- Android的提示



Answer 6:

的组合

android:padding="0dp"的XML中的工具栏

mToolbar.setContentInsetsAbsolute(0, 0)在码

这为我工作。



Answer 7:

以下是我没有和它完美的作品在Android上的每一个版本。

toolbar.xml

<android.support.v7.widget.Toolbar
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="56dp"
    android:background="@color/primary_color"
    app:theme="@style/ThemeOverlay.AppCompat"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

    <TextView
        android:id="@+id/toolbar_title"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="16dp" <!-- Add margin -->
        android:layout_marginStart="16dp"
        android:gravity="left|center"
        android:text="Toolbar Title" <!-- Your title text -->
        android:textColor="@color/white" <!-- Matches default title styles -->
        android:textSize="20sp"
        android:fontFamily="sans-serif-medium"/>

</android.support.v7.widget.Toolbar>

MyActivity.java(要隐藏默认工具栏标题)

getSupportActionBar().setDisplayShowTitleEnabled(false); // Hide default toolbar title

与显示的条重要结果



Answer 8:

这对我的作品在我的Android手机7.11:

<!-- TOOLBAR -->
<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:contentInsetStartWithNavigation="0dp">

    <TextView
        style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title"
        android:id="@+id/toolbar_title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/create_account_title"
        android:textColor="@color/color_dark_grey"/>

</android.support.v7.widget.Toolbar>

注意:我曾与填充绝对没有成功= 0,或contentInsetLeft = 0,或contentInsetStart = 0



Answer 9:

好了,所以如果你需要72dp,不能你只需要添加在填充在XML文件中的区别? 这样一来你一直机器人会默认插图/填充,他们希望我们使用。

所以:72-16 = 56

为此:添加56dp填充,把自己在缩进/保证金总72dp的。

或者您也可以更改Dimen.xml文件中的值。 这就是我现在做的事情。 它改变了一切,整个布局,包括在新的Android适当方式实现时,将工具栏。

地扪资源文件

我添加的链接显示扪值在2DP,因为我改变了它,但它是默认设置为16DP。 仅供参考...



Answer 10:

((Toolbar)actionBar.getCustomView().getParent()).setContentInsetsAbsolute(0,0);


文章来源: Android API 21 Toolbar Padding