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

在自定义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)

这里写图片描述

这里写图片描述

相关变量如下:

这里写图片描述

这里写图片描述

所以左边会出现5dp的距离

通过分析,我们可以进行解决,在toolbar中加入一条属性即可:

app:contentInsetStart="0dp"
  • 1
ok 搞定

猜你喜欢

转载自blog.csdn.net/panghaha12138/article/details/78049387