美文网首页Android开发
自定义toolbar布局不居中(已解决)

自定义toolbar布局不居中(已解决)

作者: 庞哈哈哈12138 | 来源:发表于2017-09-21 11:19 被阅读90次

在自定义toolbar的布局时,如果内部使用的布局继承自ViewGroup
(比如LinearLayout、RelativeLayout等),则会在左侧出现一块空白,导致整个toolabr布局右移。
一行 代码搞定右移的问题

app:contentInsetStart="0dp"

代码如下:

<android.support.v7.widget.Toolbar
    android:id="@+id/lcs_discover_toolbar"
    android:layout_width="match_parent"
    android:layout_height="90dp"
    android:minHeight="?attr/actionBarSize"
    android:gravity="top"
    android:layout_marginBottom="10dp"
    app:contentInsetStart="0dp"
    app:layout_collapseMode="pin"
    app:titleMarginTop="10dp">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <ImageButton
            android:layout_alignParentLeft="true"
            android:layout_marginLeft="10dp"
            android:layout_centerVertical="true"
            android:id="@+id/lcs_discover_msg"
            android:clickable="true"
            android:background="@android:color/transparent"
            android:src="@drawable/discover_msg"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        
        <TextView
            android:layout_centerInParent="true"
            android:layout_centerVertical="true"
            android:id="@+id/lcs_discover_toolbar_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:gravity="center_horizontal"
            android:text="@string/lcs_discover_toolbar_title"
            android:textColor="@color/white"
            android:textSize="17sp" />

        <ImageButton
            android:id="@+id/lcs_discover_search"
            android:clickable="true"
            android:layout_centerVertical="true"
            android:layout_marginRight="10dp"
            android:background="@android:color/transparent"
            android:src="@drawable/discover_seach_iocn"
            android:layout_alignParentRight="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    </RelativeLayout>

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

通过查看toolbar的源码发现,
当contentInsetStart != RtlSpacingHelper.UNDEFINED || contentInsetEnd != RtlSpacingHelper.UNDEFINED时,会执行mContentInsets.setRelative(contentInsetStart, contentInsetEnd)

image.png image.png

相关变量如下:

image.png image.png

所以左边会出现5dp的距离
通过分析,我们可以进行解决,在toolbar中加入一条属性即可:

app:contentInsetStart="0dp"

ok 搞定

相关文章

网友评论

    本文标题: 自定义toolbar布局不居中(已解决)

    本文链接:https://www.haomeiwen.com/subject/onjzsxtx.html