最近项目中打算使用ToolBar这个控件,用过之后发现有些问题,明明设置居中的控件,但是总是靠右边了一点点,后来在网上找了些资料才发现,原来是ToolBar控件默认有一些左边距,知道原因就好解决了,在网上查阅了些资料发现。
原来是在Wiget.AppCompat.Toolbar的parent
<
style
name
=
"Base.Widget.AppCompat.Toolbar"
parent
=
"android:Widget"
>
<
item
name
=
"titleTextAppearance"
>@style/TextAppearance.Widget.AppCompat.Toolbar.Title</
item
>
<
item
name
=
"subtitleTextAppearance"
>@style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle</
item
>
<
item
name
=
"android:minHeight"
>?attr/actionBarSize</
item
>
<
item
name
=
"titleMargins"
>4dp</
item
>
<
item
name
=
"maxButtonHeight"
>56dp</
item
>
<
item
name
=
"collapseIcon"
>?attr/homeAsUpIndicator</
item
>
<
item
name
=
"collapseContentDescription"
>@string/abc_toolbar_collapse_description</
item
>
<
item
name
=
"contentInsetStart"
>16dp</
item
>
</
style
>
这个style中,有一个contentInsetStart属性,就是这个属性造成的左边距。
知道是这个属性的原因了,那么只要继承这个style,重写一下这个属性就可以了。
定义一个新的style:
<style name=
"MyToolbar"
parent=
"Widget.AppCompat.Toolbar"
>
<item name=
"contentInsetStart"
>0dp</item>
</style>
然后在AppTheme中定义toolbarStyle就可以了。
<
style
name
=
"AppTheme"
parent
=
"Theme.AppCompat.Light.NoActionBar"
>
//.....
<
item
name
=
"toolbarStyle"
>@style/MyToolbar</
item
>
</
style
>
这样就可以解决左边距的问题了。
另外还有一种方法,就是在ToolBar控件中xml属性直接定义contentInsetStart属性为0也是可以解决的。