zoukankan      html  css  js  c++  java
  • Toolbar

    一、Toolbar的简介

    Toolbar 是 android 5.0 引入的一个新控件,Toolbar出现之前,我们很多时候都是使用ActionBar以及ActionActivity实现顶部导航栏的,因此Toolbar可以理解为是ActionBar的升级版。Toolbar大大扩展了ActionBar,使用更灵活,不像ActionBar那么固定,Toolbar更像是一般的View元素,可以被放置在view树体系的任意位置,可以应用动画,可以跟着scrollView滚动,可以与布局中的其他view交互。

    二、Toolbar的基本使用

    1、要想使用Toolbar,首先应该在Gradle的配置脚本里面添加V7兼容包(代码如下,版本是楠妹妹写本文的时候的版本),或者通过Android Studio的图形化界面的操作方法把V7兼容包依赖进来。

    compile 'com.android.support:appcompat-v7:23.1.1'
    

     2、在我们需要顶部导航栏的布局文件当中添加Toolbar,并且配置一些常用的属性(使用自定义属性的时候需要注意把命名空间“app”添加到根节点)。

    xmlns:app="http://schemas.android.com/apk/res-auto"
    

     这里只列出一些常用的属性,比如最小高度,返回按钮的图标,背景等等。这里需要注意的是,属性值中的“?”表示对Android系统的主题样式进行重用。意思是如果我们改变了主题样式中的colorPrimary属性的话,Toolbar的背景颜色也会随之改变,因此提醒我们去主题样式中进行一些配置。

    <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="?attr/colorPrimary"
            android:minHeight="?actionBarSize"
            app:navigationIcon="@mipmap/arrow_left"
            app:title="标题"/>
    

     3、在styles.xml文件中进行一些常用的配置。由于我们使用的是
    AppCompatActivity,因此必须使用AppCompat的相关主题,笔者这里使用亮色调的没有ActionBar的主题,注意需要在清单文件当中去使用自己定义的主题。为了完全去掉ActionBar,需要把windowActionBar、windowNoTitle以及加上android声明的也写上,确保把系统自带的以及第三方兼容包的ActionBar都彻底去掉。

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">@color/red</item>
        <item name="colorPrimaryDark">@color/green</item>
        <item name="colorAccent">@color/blue</item>
        <item name="android:textColorPrimary">@color/white</item>
        <item name="android:windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>
    

    4、下面对主题中的几个颜色进行讲解,请参考下面的图片进行理解。

    • colorPrimaryDark是我们手机最顶端的状态栏的背景颜色(改变它需要Android5.0以及以上的手机支持才行)。
    • colorPrimary是指导航栏的颜色。
    • colorAccent是指我们常用控件比如Button等的颜色。
    • textColorPrimary是指我们导航栏中标题的颜色。
    • windowBackground是指我们窗体的默认颜色。
    • navigationBarColor是指Android手机中虚拟按键的背景颜色。

    5、代码中对Toolbar进行常见的操作。可以通过ID找到Toolbar之后,可以对导航图标进行点击监听,前提必须是在布局文件或者java代码中添加了导航图标。同理也可以使用菜单,具体看注释,不再赘述。

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    //对Toolbar左边的导航图标进行监听
    toolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
      Toast.makeText(MainActivity.this, "返回", Toast.LENGTH_SHORT).show();
    }
    });
    
    //Toolbar中使用菜单
    toolbar.inflateMenu(R.menu.menu_main);
    toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
        @Override
        public boolean onMenuItemClick(MenuItem item) {
            switch (item.getItemId()) {
                case R.id.action_item1:
                    Toast.makeText(MainActivity.this, "菜单1", Toast.LENGTH_SHORT).show();
                    return true;
                case R.id.action_item2:
                    Toast.makeText(MainActivity.this, "菜单2", Toast.LENGTH_SHORT).show();
                    return true;
                case R.id.action_item3:
                    Toast.makeText(MainActivity.this, "菜单3", Toast.LENGTH_SHORT).show();
                    return true;
            }
            return false;
        }
    });
    

     效果图

  • 相关阅读:
    C库函数中字符串处理函数集合(转)
    浅谈C++底层机制
    vc2008快捷键
    Delphi格式输出的用法
    Devenv 命令行开关
    DX皮肤控制
    C#格式化
    linq查询DataView
    WCF中的session用法
    VS2012clickonce发布问题
  • 原文地址:https://www.cnblogs.com/loaderman/p/6934185.html
Copyright © 2011-2022 走看看