Toolbar使用总结

来源:互联网 发布:录制视频软件下载 编辑:程序博客网 时间:2024/06/06 00:42

概述:

Toolbar使用了一段时间,中间也遇到了不少的问题,也查找了不少资料和博客,在这里做一个总结,方便以后查找。

具体使用:

因为Toolbar是为了替代Actionbar而新出的控件,所以为了兼容低版本,一般是使用v7包中的android.support.v7.widget.Toolbar。然后设置程序的主题样式,在style里先把actionBar去掉。具体如下:

<style name="AppTheme" parent="Theme.AppCompat.DayNight">    <!--标题栏的颜色-->    <item name="colorPrimary">@color/colorPrimary</item>    <!--状态栏的颜色-->    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>    <!--导航栏上的标题颜色-->    <item name="textColorPrimary">@color/colorPrimary</item>    <!--Activity窗口的颜色-->    <item name="windowBackground">@color/material_blue_grey_800</item>    <!--控件的选中颜色,即checked或selected状态的颜色。-->    <item name="colorAccent">@color/colorAccent</item>    <!--和 colorAccent相反,正常状态下按钮的颜色-->    <item name="colorControlNormal">#ff0000</item>    <!--Button按钮正常状态颜色-->    <item name="colorButtonNormal">@color/accent_material_light</item>    <!--EditText 输入框中字体的颜色-->    <item name="editTextColor">@android:color/white</item></style><style name="AppTheme.NoActionBar">    <item name="windowActionBar">false</item>    <item name="windowNoTitle">true</item></style>

具体代表的可以参考下图:

以上是对项目整体的设置,这里可以对Toolbar做一些定制修改,比如右上角的那个图标修改一下,弹出的更多的条目的样式与位置都可以设置。

Toolbar 上menu设置,首先在menu目录下新建menu_main.xml文件

<menu xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    tools:context=".MainActivity" >    <item        android:id="@+id/action_search"        android:orderInCategory="80"        android:title="action_search"        android:icon="@drawable/abc_ic_search_api_mtrl_alpha"        app:showAsAction="ifRoom"/>    <item        android:id="@+id/action_login"        android:title="@string/menu_main_please_login"        android:icon="@drawable/home_menu_0"        app:showAsAction="never" />    <item        android:id="@+id/action_my_message"        android:title="@string/menu_main_my_message"        android:icon="@drawable/home_menu_1"        app:showAsAction="never" /></menu>
在Activity中设置

@Override
protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);
    setContentView(getLayoutId());
    setSupportActionBar(tool);
}
@Overridepublic boolean onCreateOptionsMenu(Menu menu) {    getMenuInflater().inflate(R.menu.menu_main, menu);    return true;}
// 点击Menu的处理方法
public boolean onOptionsItemSelected(MenuItem item){
}
Toolbar上Menu样式设置 在布局文件中设置 android:theme="@style/Theme.ToolBar.Menu"

<style name="Theme.ToolBar.Menu" parent="ThemeOverlay.AppCompat.Dark.ActionBar">    <!-- 设置-弹窗的背景-颜色-->    <item name="android:colorBackground">@color/common_bg</item>    <!-- 字体的颜色-->    <item name="android:textColor">@color/common_h1</item>    <!-- 字体大小-->    <item name="android:textSize">16sp</item>    <!-- 用于替换菜单的三个小白点,换成自已的图片-->    <item name="actionOverflowButtonStyle">@style/ActionButton.Overflow.Menu</item>    <!--用于控制menu弹出的位置,位于toolbar的下面,而不是上面-->    <item name="actionOverflowMenuStyle">@style/OverflowMenuStyle</item>    <!-- 用于修改item默认的分割线-->    <item name="android:dropDownListViewStyle">@style/dropDownStyle</item>    <item name="dropDownListViewStyle">@style/dropDownStyle</item></style><style name="ActionButton.Overflow.Menu" parent="android:style/Widget.Holo.Light.ActionButton.Overflow">    <item name="android:src">@drawable/icon_plus</item></style><style name="OverflowMenuStyle" parent="Widget.AppCompat.Light.PopupMenu.Overflow">    <!--把该属性改为false即可使menu位置位于toolbar之下-->    <item name="overlapAnchor">false</item>    <!--弹框水平方向右边的距离-->    <item name="dropDownHorizontalOffset">5dp</item>    <!--弹框竖直方向上边的距离-->    <item name="android:dropDownVerticalOffset">5dp</item></style><!--用于修改popmenu的分割线--><style name="dropDownStyle" parent="android:style/Widget.Holo.ListView.DropDown">    <item name="android:listSelector">@drawable/touch_bg</item>    <item name="android:divider">@color/common_divider_narrow</item>    <item name="android:dividerHeight">0.5dp</item></style>

以上就是Toolbar的使用总结了。

1 0