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

来源:互联网 发布:读三毛梦里花落知多少 编辑:程序博客网 时间:2024/06/06 03:00

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

阅读全文
0 0