Android 开发之toolbar使用

  本文记录在使用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时自己的一点心得

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值