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