ToolBar间距设置

1、没有NavigationIcon

此时,contentInsetStart 会发挥作用,什么作用。就是你的自定义View左边总会多出一块空白。
空白
为什么?看源码。

        int contentInsetStart = a.getDimensionPixelOffset(styleable.Toolbar_contentInsetStart, -2147483648);
        int contentInsetEnd = a.getDimensionPixelOffset(styleable.Toolbar_contentInsetEnd, -2147483648);
        int contentInsetLeft = a.getDimensionPixelSize(styleable.Toolbar_contentInsetLeft, 0);
        int contentInsetRight = a.getDimensionPixelSize(styleable.Toolbar_contentInsetRight, 0);
        this.ensureContentInsets();
        this.mContentInsets.setAbsolute(contentInsetLeft, contentInsetRight);
        if (contentInsetStart != -2147483648 || contentInsetEnd != -2147483648) {
            this.mContentInsets.setRelative(contentInsetStart, contentInsetEnd);
        }

我们能够看到,当没有赋值是有一个相对的偏移。并且在style中看toolbar的属性。

<style name="Base.V7.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="titleMargin">4dp</item>
        <item name="maxButtonHeight">@dimen/abc_action_bar_default_height_material</item>
        <item name="buttonGravity">top</item>
        <item name="collapseIcon">?attr/homeAsUpIndicator</item>
        <item name="collapseContentDescription">@string/abc_toolbar_collapse_description</item>
        <item name="contentInsetStart">16dp</item>//这里
        <item name="contentInsetStartWithNavigation">@dimen/abc_action_bar_content_inset_with_nav</item>
        <item name="android:paddingLeft">@dimen/abc_action_bar_default_padding_start_material</item>
        <item name="android:paddingRight">@dimen/abc_action_bar_default_padding_end_material</item>
    </style>

默认赋值16dp,坑爹呢。
所以我们可以这样干。

  1. 在xml里进行赋值
 <android.support.v7.widget.Toolbar
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:contentInsetStart="0dp">
  1. 在style里复写
    <style name="sss" parent="Widget.AppCompat.Toolbar">
        <item name="contentInsetStart">0dp</item>
    </style>

这两个都阔以。

2、有navigationIcon

这时候 神奇的事情发生了,我们放入一个左上角的icon
在这里插入图片描述
不就是间距么,处理掉就是,结果上面的方法木用。接下来看源码,看到一个
setContentInsetStartWithNavigation(int w)方法,传入一个宽度参数
看名字,再想想上面的情况
emmmm这是icon有的时候产生的间距试一下
在java代码里or kt代码里调用
toolbar.setContentInsetStartWithNavigation(0)
在这里插入图片描述
效果出来了就是这样。

如果你的icon够大,当我没说。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值