Android 开发之toolbar使用

来源:互联网 发布:天津网络推广和seo 编辑:程序博客网 时间:2024/06/05 11:25
  本文记录在使用Toolbar时,常用的一些属性及基本使用  使用Toolbar时常用的基础颜色值设置  在values的styles文件中配置基本风格
      <resources>      <style name="AppTheme" parent="AppTheme.base">    </style>    <style name="AppTheme.base" parent="Theme.AppCompat">        <!--隐藏actionbar-->        <item name="windowActionBar">false</item>        <item name="windowNoTitle">true</item>        <!--toolbar上文字颜色¬-->        <item name="colorPrimary">@color/color_white</item>        <!--系统状态栏背景颜色-->        <item name="colorPrimaryDark">@color/color_white</item>        <!--各控制元件   如(check box ,switch 或radio)被勾选或者选择时的颜色-->        <item name="colorAccent">@color/color_black</item>        <!--App bar上的标题与更多菜单中的文字颜色-->        <item name="android:textColorPrimary">@color/color_black</item>        <!--界面内容背景色¬-->        <item name="android:windowBackground">@color/color_red</item>        <!--导航栏背景颜色 在API21以上-->        <item name="android:navigationBarColor">@color/color_black</item>    </style>    </resources>

Toolbar的使用:
当我们需要使用的Toolbar的界面很多时,我们可以复用Toolbar布局。
下面是我的布局文件文件,我在Toolbar中间放置了一个TextView,方便我们给各个界面设置主题。同时我们还可以根据需要给在toolbar里面放置图片等。

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content">    <android.support.v7.widget.Toolbar        android:id="@+id/toolbar"        android:layout_width="match_parent"        android:layout_height="?attr/actionBarSize"        android:layout_alignParentLeft="true"        android:layout_alignParentStart="true"        android:layout_alignParentTop="true"        android:background="@color/bg_toolbar" />    <TextView        android:id="@+id/tv_toolbar"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:layout_centerVertical="true"        android:maxLines="1"        android:textColor="@color/white"        android:textSize="@dimen/text_size_30sp" /></RelativeLayout>
在其余界面中复用toolbar布局
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:baselineAligned="false"    android:orientation="vertical">    <include layout="@layout/item_toolbar" />    <View        android:layout_width="match_parent"        android:layout_height="@dimen/dimen_0.5dp"        android:layout_marginTop="@dimen/dimen_5dp"        android:background="@color/bg_view" />    <TextView        android:id="@+id/tv_car_setting"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginTop="@dimen/dimen_5dp"        android:drawableEnd="@drawable/ic_in"        android:drawableRight="@drawable/ic_in"        android:onClick="onClick"        android:gravity="center_vertical"        android:padding="@dimen/dimen_10dp"        android:text="@string/car_setting"        android:textSize="@dimen/text_size_20sp" />    <View        android:layout_width="match_parent"        android:layout_height="@dimen/dimen_0.5dp"        android:layout_marginLeft="@dimen/dimen_10dp"        android:layout_marginStart="@dimen/dimen_10dp"        android:background="@color/bg_view" />    <View        android:layout_width="match_parent"        android:layout_height="@dimen/dimen_0.5dp"        android:layout_marginLeft="@dimen/dimen_10dp"        android:layout_marginStart="@dimen/dimen_10dp"        android:background="@color/bg_view" />    <TextView        android:id="@+id/tv_app_setting"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:gravity="center_vertical"        android:layout_marginTop="@dimen/dimen_5dp"        android:drawableEnd="@drawable/ic_in"        android:drawableRight="@drawable/ic_in"        android:onClick="onClick"        android:padding="@dimen/dimen_10dp"        android:text="@string/app_setting"        android:textSize="@dimen/text_size_20sp" />    <View        android:layout_width="match_parent"        android:layout_height="@dimen/dimen_0.5dp"        android:layout_marginLeft="@dimen/dimen_10dp"        android:layout_marginStart="@dimen/dimen_10dp"        android:background="@color/bg_view" />    <RelativeLayout        android:layout_width="match_parent"        android:layout_height="wrap_content">        <TextView            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:padding="@dimen/dimen_10dp"            android:text="@string/set_master"            android:textSize="@dimen/text_size_20sp" />        <Switch            android:id="@+id/sw_master"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_alignParentEnd="true"            android:layout_alignParentRight="true"            android:padding="@dimen/dimen_10dp" />    </RelativeLayout>    <View        android:layout_width="match_parent"        android:layout_height="@dimen/dimen_0.5dp"        android:background="@color/bg_view" />    <TextView        android:id="@+id/tv_sensor_setting"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginTop="@dimen/dimen_5dp"        android:drawableEnd="@drawable/ic_in"        android:drawableRight="@drawable/ic_in"        android:gravity="center_vertical"        android:onClick="onClick"        android:padding="@dimen/dimen_10dp"        android:text="@string/sensor_setting"        android:textSize="@dimen/text_size_20sp" />    <Button        android:id="@+id/btn_exit"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginEnd="@dimen/dimen_100dp"        android:layout_marginLeft="@dimen/dimen_100dp"        android:layout_marginRight="@dimen/dimen_100dp"        android:layout_marginStart="@dimen/dimen_100dp"        android:layout_marginTop="@dimen/dimen_50dp"        android:padding="@dimen/dimen_5dp"        android:textColor="@color/white"        android:background="@color/bg_toolbar"        android:text="@string/exit"        android:textSize="@dimen/text_size_25sp"        android:visibility="gone"        /></LinearLayout>

在代码中,给Toolbar设置图片和给ToolBar里面的TextView设置文字
代码中的R.drawable.ic_back是一张返回上一个界面的图片,我们可以 根据需要自己放置一张图片,

   Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);        setSupportActionBar(toolbar);        ActionBar actionBar = getSupportActionBar();        if (actionBar != null) {            //设置toolbar不显示title            actionBar.setDisplayShowTitleEnabled(false);            //设置左上角图标是否显示            actionBar.setDisplayHomeAsUpEnabled(true);                   //给toolbar左上角设置图片         actionBar.setHomeAsUpIndicator(R.drawable.ic_back);        }
 返回上个界面功能代码
  public boolean onOptionsItemSelected(MenuItem item) {        switch (item.getItemId()) {            case android.R.id.home:                finish();                return true;        }        return super.onOptionsItemSelected(item);    }

以上就是我在使用Toolbar时自己的一点心得