比ActionBar更好用的Tollbar

目录

  • 比ActionBar更好用的Tollbar

    • ActionBar
    • Tollbar
      • 使用Tollbar

比ActionBar更好用的Tollbar

ActionBar

  • ActionBar是每个活动的标题栏控件。
  • 由于设计问题ActionBar被限制,只能在活动的顶部

Tollbar

  • Tollbar是Material的一个控件。
  • Tollbar的好用之处是因为,Tollbar是继承于ActionBar的,拥有ActionBar所有功能的基础上提高了自身的灵活性,配合其他控件完成一些Material Design[^ 1]效果

使用Tollbar

  • 一个新的项目默认是ActionBar

让Tollbar直观效果更明显

? 在res/values/styles.xml中修改一个name为APPTheme的样式,指定parent的主题为淡色主题,通常有两个值

Theme.AppCompat.NoActionBar(深色主题)和Theme.AppCompat.Light.NoActionBar(淡色主题)

Tollbar替换ActionBar

在activity_main.xml文件添加appcomat-v7库的Tollbar控件

<androidx.appcompat.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"<!--高度设置为ActionBar的高度-->
                android:background="?attr/colorPrimary"//<!--背景色设置为colorPrimary-->
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"<!--Tollbar主题-->
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/><!--弹出来的菜单项淡色主题-->

修改MainActivity.java文件

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = findViewById(R.id.toolbar);//获取Toolbar的实例
        setSupportActionBar(toolbar);//调用方法传入toolbar
    }

此时Tollbar和ActionBar就一样了。

在Tollbar上修改标题名字

修改标题名字,AndroidManifest.xml文件的activity标签中添加android:label="标题名字"。

给Tollbar添加一些action按钮

  1. 准备几张要添加的矢量图(推荐阿里巴巴矢量图库下载)保存在drawable目录下。
  2. 在res下新建一个menu文件夹目录,右击menu文件夹new一个Menu resource file
  3. 创建一个tollbar.xml文件,添加代码
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/info"
        android:icon="@drawable/info"
        android:title="Info"
        app:showAsAction="always"/><!--always表示永远显示在Toolbar中,屏幕不够不显示-->
    <item
        android:id="@+id/delete"
        android:icon="@drawable/delete"
        android:title="Delete"
        app:showAsAction="ifRoom"/><!--ifroom表示屏幕空间足够的话显示,不够则显示在菜单中,
                                        never表示永远显示在菜单中-->
</menu>
  1. MainActivity.java添加点击事件代码,这里我只添加测试按钮有没有用的代码,具体逻辑可以依情况修改。
   @Override
       public boolean onOptionsItemSelected(@NonNull MenuItem item) {
           switch (item.getItemId()){
               case R.id.info:
                   Toast.makeText(this,"info",Toast.LENGTH_SHORT).show();
                   break;
               case R.id.delete:
                   Toast.makeText(this,"delete",Toast.LENGTH_SHORT).show();
                   break;
                   default:
           }
           return true;
       }

好了,代码写到这,可以运行看看了,Toolbar的基本功能就先说到这了,欢迎各路大神指点。

[^ 1]: Material Design是谷歌设计的一套界面设计原则

原文地址:https://www.cnblogs.com/good-good-study-cl/p/12079727.html

时间: 2024-11-05 18:44:56

比ActionBar更好用的Tollbar的相关文章

实现一个与内容合二为一的ActionBar动画效果

实现一个与内容合二为一的ActionBar动画效果,让你的actionbar更生动.以下是效果图: 这样的效果的优点是让actionbar也成为了内容的一部分,实际应用的效果比图片展示的效果要好,除了actionbar渐渐出现的效果外.背景图片另一种称之为Ken Burns effect 的动态效果. 以下解说实现过程. 设置actionbar的样式.我们须要例如以下两点: 1.actionbar是透明的. 2.开启overlay mode模式 <resources> <style na

android源码大放送(实战开发必备),免费安卓demo源码,例子大全文件详细列表

免费安卓demo源码,例子大全文件详细列表 本列表源码永久免费下载地址:http://www.jiandaima.com/blog/android-demo 卷 yunpan 的文件夹 PATH 列表 卷序列号为 0000-73EC E:. │ jiandaima.com文件列表生成.bat │ 例子大全说明.txt │ 本例子永久更新地址~.url │ 目录列表2016.03.10更新.txt │ ├─前台界面 │ ├─3D标签云卡片热门 │ │ Android TagCloudView云标签

一个Activity掌握Android5.0新控件 (转)

原文地址:http://blog.csdn.net/lavor_zl/article/details/51279386 谷歌在推出Android5.0的同时推出了一些新控件,Android5.0中最常用的新控件有下面5种. 1. CardView(卡片视图) CardView顾名思义是卡片视图,它继承FrameLayout.它是一个带圆角的背景和阴影FrameLayout.CardView被包装为一种布局,并且经常在ListView和RecyclerView的Item布局中,作为容器使用. Ca

实现Instagram的Material Design概念设计

几个月前(这篇文章的日期是2014 年11月10日),google发布了app和web应用的Material Design设计准则之后,设计师Emmanuel Pacamalan在youtube上发布了一则概念视频,演示了Instagram如果做成Material风格会是什么样子: 视频地址 http://v.youku.com/v_show/id_XODg2NDQ1NDQ4.html 这仅仅是停留在图像上的设计,是美好的愿景,估计很多人都会问,能否使用相对简单的办法将它实现出来呢?答案是:ye

Android自学历程—Toolbar(manterial design)

近来又学了学Toolbar,发现国外的文字文档比国内的还少,不知道是我搜索方式有误还是咋的,国外的视屏教学又听不懂,哎,看来以后还是要硬着头皮听,看下去. 国内的文档好的挺多的,这里我推荐一个国外,一个香港的. 一篇台湾博主的:www.blog.mosil.biz/2014/10/android-toolbar/,我看他的遇到不少问题,也解决了不少 一篇国外的基本的教程:www.javatechig.com/android/android-lollipop-toorbar-example,这个可

Android5.0新控件

谷歌在推出Android5.0的同时推出了一些新控件,Android5.0中最常用的新控件有下面5种.  1. CardView(卡片视图) CardView顾名思义是卡片视图,它继承FrameLayout.它是一个带圆角的背景和阴影FrameLayout.CardView被包装为一种布局,并且经常在ListView和RecyclerView的Item布局中,作为容器使用. CardView的使用非常简单: 1 <android.support.v7.widget.CardView 2 andr

这些小工具让你的Android 开发更高效

在做Android 开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了,今天就为大家推荐一下Android 开发遇到的小工具,来让你的开发更高效. Vysor Vysor 是一个可以将手机的屏幕投影到电脑上,当然也可以操作,当我们做分享或者演示的时候,这个工具起到了作用. Vector Asset Android Studio 在1.4 支持了VectorAsset,所谓VectorAsset:它可以帮助你在Android 项目中添加Materia

Android ActionBar完全解析,使用官方推荐的最佳导航栏(下)

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/25466665 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文. http://developer.android.com/guide/topics/ui/actionbar.html 限于篇幅的原因,在上篇文章中我们只学习了ActionBar基础部分的知识,那么本篇文章我们将接着上一章的内容继续学习,探究一下ActionBar

Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/18234477 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工,英文好的朋友也可以直接去读原文. http://developer.android.com/guide/topics/ui/actionbar.html Action Bar是一种新増的导航栏功能,在Android 3.0之后加入到系统的API当中,它标识了用户当前操作界面的位置,并提供了额外的用