• Android的ToolBar


    ToolBar比ActionBar更加可控,自由。因此,Google 逐渐使用ToolBar来代替ActionBar。

    使用ToolBar

    1.要引入appCompat_v7支持

    2.主题设置为NoActionBar

    在style.xml文件中

     <style name="MyAppTheme" parent="Theme.AppCompat.Light.NoActionBar">
            <!--ToolBar颜色-->
            <item name="colorPrimary">@color/colorBlack</item>
            <!--状态栏颜色-->
            <item name="colorPrimaryDark">@color/colorBlack</item>
            <!--窗口的背景色-->
            <item name="android:windowBackground">@color/colorWhite</item>
            <!--add searchView-->
            <item name="searchViewStyle">@style/MySearchView</item>
            <item name="actionOverflowMenuStyle">@style/OverflowMenuStyle</item>
    
        </style>


     

    <style name="MySearchView" parent="Widget.AppCompat.SearchView"/>
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
    
    
        compile 'com.android.support:appcompat-v7:21.0.3'
    }

    界面布局

    <android.support.v7.widget.Toolbar
      android:id="@+id/toolbar"
      android:layout_height="?attr/actionBarSize"
      android:layout_width="match_parent" >
     
    </android.support.v7.widget.Toolbar>

    请记得用 support v7 里的 toolbar,不然然只有 API Level 21 也就是 Android 5.0 以上的版本才能使用。


    程序代码:

    toolbar=(Toolbar) findViewById(R.id.toolbar);
    toolbar.setTitle("主标题");
    toolbar.setSubtitle("副标题");
    toolbar.setLogo(R.mipmap.ic_launcher);
    setSupportActionBar(toolbar);//把toolbar当成actionBar使用


    菜单配置

    <?xml version="1.0" encoding="utf-8"?>
    <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_search"
            android:orderInCategory="80"
            android:title="@string/tv_search"
            app:actionViewClass="android.support.v7.widget.SearchView"
            app:showAsAction="ifRoom"
            />
        <item
            android:id="@+id/action_share"
            android:orderInCategory="90"
            android:title="@string/tv_share"
            app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
            app:showAsAction="ifRoom"
            />
        <item
            android:id="@+id/action_error_ques"
            android:orderInCategory="100"
            android:title="@string/tv_error_ques"
            app:showAsAction="never"
            android:icon="@mipmap/error_prac_icon"
    
            />
        <item
            android:id="@+id/action_collected_ques"
            android:orderInCategory="110"
            android:title="@string/tv_collection_ques"
            app:showAsAction="never"
            android:icon="@mipmap/memu_colle_prac_icon"
            />
    </menu>
      • orderInCategory
        设置菜单项的排列顺序,必须设置大于等于0的整数值。数值小的排列在前,如果值相等,则按照xml中的顺序展现。
      • title
        菜单项的标题。
      • icon
        菜单项的图标。
      • showAsAction
        该属性有五个值,可以混合使用。
        • always
          总是显示在Toolbar上。
        • ifRoom
          如果Toolbar上还有空间,则显示,否则会隐藏在溢出列表中。
        • never
          永远不会显示在Toolbar上,只会在溢出列表中出现。
        • withText
          文字和图标一起显示。
        • collapseActionView
          声明了这个操作视窗应该被折叠到一个按钮中,当用户选择这个按钮时,这个操作视窗展开。一般要配合ifRoom一起使用才会有效。
      @Override
        public boolean onCreateOptionsMenu(Menu menu)
        {
            getMenuInflater().inflate(R.menu.memu_prac_toolbar,menu);
            return true;
        }

    菜单单击事件

    @Override
        public boolean onOptionsItemSelected(MenuItem item)
        {
            switch (item.getItemId())
            {
                case R.id.action_error_ques:
                    startActivity(new Intent(MainActivity.this, ErrorActivity.class));
                    break;
                case R.id.action_collected_ques:
                    startActivity(new Intent(MainActivity.this, CollectedActivity.class));
                    break;
                default:
                    return false;
            }
            return true;
        }

    在此引用某博客的一张图以及该博客对其的解释

    http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1118/2006.html

     

    1. setNavigationIcon
      即设定 up button 的图标,因为 Material 的介面,在 Toolbar这里的 up button样式也就有別于过去的 ActionBar 哦。

    2. setLogo
      APP 的图标。

    3. setTitle
      主标题。

    4. setSubtitle
      副标题。

    5. setOnMenuItemClickListener
      设定菜单各按鈕的动作。

    // Navigation Icon 要設定在 setSupoortActionBar 才有作用

    其余的明天继续写。

  • 相关阅读:
    爬虫笔记之JS检测浏览器开发者工具是否打开
    上海租房@8群
    在Windows中玩转Docker Toolbox(镜像加速)
    Docker 清理命令 删除所有的镜像和容器
    修改docker安装的machine位置
    Sass @mixin 与 @include
    webpack之SourceMap
    c#中Indexof()和Split()的用法
    《MVC+EF》——用DBFirst创建ADO.NET实体数据模型和对象关系映射
    sql server 用户'sa'登录失败(错误18456)
  • 原文地址:https://www.cnblogs.com/tangZH/p/6498911.html
Copyright © 2020-2023  润新知