[Android]Toolbar

简介: [Android]Toolbar

Toolbar是由AndroidX库提供的,它的强大之处在于,它不仅继承了ActionBar的所有功能,并且灵活度很高,可以配合其他控件完成一些Material Design的效果。

使用Toolbar替代ActionBar


在themes的两个xml文件中,

都指定一个不带ActionBar的主题

Theme.MaterialComponents.DayNight.NoActionBar:表示浅色主题,它会将界面的主题颜色设成浅色,陪衬颜色设为深色。

Theme.MaterialComponents.NoActionBar:表示深色主题,它会将界面的主题颜色设成深色,陪衬颜色设为浅色。

修改activity_main.xml的代码

<FrameLayout
    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"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
            <androidx.appcompat.widget.Toolbar
                android:id="@+id/toolbar1"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"//高度设置为actionBar的高度
                android:background="?attr/colorPrimary"//背景颜色设置为colorPrimary
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"//单独将弹出的菜单项指定为浅色主题
              />
/>

在MainActivity中添加

setSupportActionBar(toolbar)

Toolbar常用属性


<androidx.appcompat.widget.Toolbar
                android:id="@+id/toolbar2"
                android:layout_width="match_parent"
                android:layout_height="?attr/actionBarSize"
                app:title="主标题"
                app:subtitle="副标题"
                android:background="?attr/colorPrimary"
                app:logo="@drawable/ic_launcher_foreground"
                app:titleTextColor="@color/black"
                app:subtitleTextColor="@color/black"
                android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
                />

添加菜单选项


res/menu/toolbar.xml

<?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">
    <item
        android:id="@+id/backup"//按钮的id
        android:icon="@drawable/is_backup"//指定按钮的图标
        android:title="Backup"//按钮的文字
        app:showAsAction="always"//指定按钮的显示位置
        />
    <item
        android:id="@+id/delect"
        android:icon="@drawable/is_delete"
        android:title="Delect"
        app:showAsAction="ifRoom"
        />
    <item
        android:id="@+id/settings"
        android:icon="@drawable/is_settings"
        android:title="Settings"
        app:showAsAction="never"
        />
</menu>

showAsAction的属性:

showAsAction
always 永远显示在Toolbar中,如果屏幕空间不够则不显示
ifRoom 表示屏幕空间足够的情况下显示在Toolbar中,不够的话就显示在菜单当中
never 表示永远显示在菜单当中

注意:Toolbar中的action按钮只会显示图标,菜单中的action按钮只会显示文字。

设置菜单的点击事件


override fun onCreateOptionsMenu(menu: Menu): Boolean {
        menuInflater.inflate(R.menu.toolbar,menu)
        return true
    }
    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        when(item.itemId){
            R.id.backup->Toast.makeText(this,"backup",Toast.LENGTH_SHORT).show()
            R.id.delect->Toast.makeText(this,"delect",Toast.LENGTH_SHORT).show()
            R.id.settings->Toast.makeText(this,"settings",Toast.LENGTH_SHORT).show()
        }
        return true
    }

目录
相关文章
|
7月前
|
XML Java Android开发
Android Studio App开发中工具栏Toolbar、溢出菜单OverflowMenu、标签布局TabLayout的讲解及实战(实现京东App的标签导航栏,附源码)
Android Studio App开发中工具栏Toolbar、溢出菜单OverflowMenu、标签布局TabLayout的讲解及实战(实现京东App的标签导航栏,附源码)
671 0
|
Android开发
深入剖析Android四大组件(九)——Activity之AppCompatActivity与toolbar的结合(二)
深入剖析Android四大组件(九)——Activity之AppCompatActivity与toolbar的结合(二)
218 0
深入剖析Android四大组件(九)——Activity之AppCompatActivity与toolbar的结合(二)
|
API Android开发
深入剖析Android四大组件(九)——Activity之AppCompatActivity与toolbar的结合(一)
深入剖析Android四大组件(九)——Activity之AppCompatActivity与toolbar的结合(一)
186 0
深入剖析Android四大组件(九)——Activity之AppCompatActivity与toolbar的结合(一)
|
Android开发
Android 滑动渐变背景Toolbar、点击置顶ScrollView
Android 滑动渐变背景Toolbar、点击置顶ScrollView
220 0
Android 滑动渐变背景Toolbar、点击置顶ScrollView
|
Android开发
Android之解决toolbar里面显示返回按钮图片太大和没有水平居中的问题
Android之解决toolbar里面显示返回按钮图片太大和没有水平居中的问题
326 0
|
XML Android开发 数据格式
Android 自定义ToolBar并沉浸式
  ToolBar是Android 5.0推出的一个新的导航控件用于取代之前的ActionBar,由于其高度的可定制性、灵活性、具有Material Design风格等优点,越来越多的App也用上了ToolBar。
1454 0
|
XML Android开发 数据格式
Android开发学习之使用Toolbar实现不同的Fragment使用不同颜色的标题栏与状态栏
Android开发学习之使用Toolbar实现不同的Fragment使用不同颜色的标题栏与状态栏                                            先看效果图。
2905 0
|
Android开发 容器 数据格式
Android--自定义toolbar(Fragment)
版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/79260181 public ...
1418 0