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