Android 自定义Toolbar/ActionBar视图左右两边有空白

来源:互联网 发布:猎人黑暗大陆知乎 编辑:程序博客网 时间:2024/05/02 00:43

为什么自定义Toolbar/ActionBar两边会有留白


   

  如图效果:

        其实这是由于系统的自定义属性造成的,到系统ActionBar/Toobar的自定义属性,我们可以看到有这样一个自定义的风格,源码如下

    <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> <strong> <span style="color:#FF0000;">左侧空白原因</span></strong>    </style>  



自定义ActionBar/ToolBar解决方法:

    <!--actionbar 两侧留有空白 -->    <style name="AppActionbar" parent="Theme.AppCompat.Light">        <item name="windowActionBar">true</item>        <item name="actionBarStyle">@style/ClubActionbar</item>        <item name="android:windowNoTitle">true</item>        <item name="android:cursorVisible">true</item>    </style>    <style name="ClubActionbar" parent="Widget.AppCompat.ActionBar">        <item name="contentInsetStart">0dp</item><!-- 设置该属性解决左侧空白部分-->        <item name="contentInsetEnd">0dp</item><!-- 设置该属性解决右侧空白部分-->    </style>

在manifest文件中:

 <activity            android:name=".ui.AttentionActivity"            android:configChanges="keyboardHidden|orientation"            android:label="@string/attention"            android:theme="@style/AppActionbar"  <!-- <span style="color:#FF0000;"><strong>添加此处</strong></span>-->            android:screenOrientation="portrait" />

ToolBar解决方法

类似和ActionBar;

    <style name="ClubToolbar" parent="Widget.AppCompat.Toolbar">              <item name="contentInsetStart">0dp</item>            <item name="contentInsetEnd">0dp</item>
</style>


然后在AppStyle重写Toolbar属性

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">        .....        <item name="toolbarStyle">@style/ClubToolbar</item>    </style>

当然也可以直接在布局中直接写:




0 0
原创粉丝点击