Android:Toolbar

  • AndroidToolbar
    • 官方文档
    • Overview
    • layout布局
    • Manifest Theme
    • Java
    • 相关的类
    • 相关方法
    • 待更新

官方文档

http://developer.android.com/intl/zh-cn/reference/android/support/v7/widget/Toolbar.html


Overview

v7下的 android.support.v7.widget.Toolbar ,与传统的ActionBar相比,ActionBar是由布局控制的不透明组件,Toolbar能够被放在内容区域的任何位置,想要使用Toolbar,则在 AppCompatActivity 中使用 setSupportActionbar() 方法则可以。

Toolbar提供了更多特性:

  • navigation button:导航按钮
  • logo:logo图标和描述
  • title 和 subtitle:标题和子标题
  • custom views:子view
  • action menu:菜单

layout布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <android.support.v7.widget.Toolbar        android:id="@+id/id_toolbar"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:background="@color/primary_color"        android:elevation="3dp"        android:minHeight="64dp" tools:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>RelativeLayout>
  • android:elevation:表示阴影,在material design中View的位置由x,y确定,而现在新增了z轴方向,z的值就是view的高度(elevation),高度决定了阴影。

  • tools:popupTheme:用于设置Toolbar的主题,新版本22.1.x中,AppCompat 允许对 Toolbar 使用android:theme代替tool:theme,它会自动继承父视图的theme ,并且兼容所有APIv11以上的设备。

  • ThemeOverlay:Android 5.0引入一个全新的特性,允许你对view设置theme,这种设置会影响控件及其包含的子控件。使用AppCompat v22.1.x 后,也可以给你 layout 里的任意视图设置主题。该种实现主要是通过 ContextThemeWrapper (API v1)类包裹(wrap)了context,也就是你的Activity,通过覆盖(overlay)一个新的主题在当前Context的主题之上。这就是ThemeOverlay的命名吧。


Manifest Theme

因为使用了Toolbar替换我们的ActionBar,所以我们需要设置我们的应用的Theme:

<style name="AppTheme" parent="AppTheme.Parent" /><style name="AppTheme.Parent" parent="Theme.AppCompat">        --设置让toolbar重叠在Actionbar-->        <item name="android:windowActionModeOverlay">trueitem>           <item name="windowActionModeOverlay">trueitem>        <item name="android:windowActionBarOverlay">trueitem>        <item name="windowActionBarOverlay">trueitem>        <item name="windowNoTitle">trueitem>        <item name="windowActionBar">falseitem>style>

在我们的AndroidManifest.xml中为 applicationactivity 指定 android:theme="@style/AppTheme"


Java

public class MainActivity extends AppCompatActivity {    private Toolbar mToolbar;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        mToolbar = (Toolbar) findViewById(R.id.id_toolbar);        if(mToolbar != null){            setSupportActionBar(mToolbar);        }    }}

相关的类

class Toolbar.LayoutParams
Toolbar子view的布局信息
interface Toolbar.OnMenuItemClickListener
用于设置菜单按钮点击的事件监听器

相关方法

  • 添加MenuinflateMenu(int)

传入R.menu.menu_main菜单文件id参数,能够生成对应的菜单:

<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_settings"        android:orderInCategory="100"        android:title="@string/action_settings"        app:showAsAction="never" />    <item        android:id="@+id/action_exit"        android:orderInCategory="100"        android:title="@string/action_exit"        app:showAsAction="never" />menu>

设置按钮的响应事件:

mToolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {                @Override                public boolean onMenuItemClick(MenuItem menuItem) {                    int id = menuItem.getItemId();                    if (id == R.id.action_settings) {                    } else if(id == R.id.action_exit) {                        finishActivty();                    }                    return false;                }            });        }
  • 添加返回按钮setDisplayHomeAsUpEnabled(boolean)
//添加返回按钮setSupportActionBar(mToolbar);getSupportActionBar().setDisplayHomeAsUpEnabled(true);//返回按钮添加点击响应时间mToolbar.setNavigationOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View v) {    }});

待更新…

更多相关文章

  1. [转]android layout布局属性
  2. Android Layout 布局属性全解
  3. 常见UI布局
  4. android圆角按钮
  5. 制作登录界面的布局时候,可以使用 android:stretchColumns="0,3"
  6. 相对布局 RelativeLayout 常用属性介绍

随机推荐

  1. Android-->build.gradle-->packagingOpti
  2. Android(安卓)计算器界面的实现
  3. Android闹钟设置
  4. Android电话拨号
  5. Android屏幕像素转换
  6. Android(安卓)WIFI DEMO(扫描附近WIFI强
  7. Android分页控件xlistview
  8. Android版本检测\自动更新
  9. Android之布局onClick属性写法规则
  10. android PreferenceScreen使用笔记