Android ToolBar控件详解及实例

Android ToolBar控件详解及实例

简介

ToolBar是Android系统提供的一个工具栏控件,它可以用来代替ActionBar,具有更强的定制性和扩展性。使用ToolBar可以帮助我们更容易地实现不同样式的界面,从而提升用户体验。

使用

添加依赖

在项目的build.gradle文件中添加以下依赖:

implementation 'com.google.android.material:material:1.4.0'

布局

在布局文件中添加ToolBar,Toolbar需要放在LayoutBox中,否则会显示不出来。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.google.android.material.appbar.AppBarLayout
        android:id="@+id/app_bar_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <com.google.android.material.appbar.MaterialToolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:titleTextColor="@color/white"
            app:title="My Title"/>

    </com.google.android.material.appbar.AppBarLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <!-- Your Layout Content -->

    </LinearLayout>

</LinearLayout>

加载菜单项

在Activity中重写onCreateOptionsMenu方法,并使用MenuInflater加载菜单项。

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
    menuInflater.inflate(R.menu.main_menu, menu)
    return super.onCreateOptionsMenu(menu)
}

R.menu.main_menu是保存菜单项的xml文件。

菜单点击事件

在Activity中重写onOptionsItemSelected方法,并根据菜单项的ID来响应事件。

override fun onOptionsItemSelected(item: MenuItem): Boolean {
    when (item.itemId) {
        R.id.action_settings -> {
            // Handle Settings Click
            return true
        }
        R.id.action_help -> {
            // Handle Help Click
            return true
        }
        else -> return super.onOptionsItemSelected(item)
    }
}

示例1:动态改变ToolBar标题

val toolbar: MaterialToolbar = findViewById(R.id.toolbar)
toolbar.title = "New Title"

示例2:自定义ToolBar

MaterialToolbar中添加自定义控件,使ToolBar更具个性化。

<com.google.android.material.appbar.MaterialToolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    app:titleTextColor="@color/white"
    app:title="My Title">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_search"/>

</com.google.android.material.appbar.MaterialToolbar>

总结

本文介绍了Android中ToolBar控件的使用方法,从添加依赖、布局、加载菜单项、菜单点击事件和自定义ToolBar等方面进行了详细的说明。通过学习本文,您可以更加灵活地使用ToolBar,为您的应用程序增加更多的个性化特色。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android ToolBar控件详解及实例 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • 从头学习C语言之字符串处理函数

    从头学习C语言之字符串处理函数的攻略,主要包含以下几个步骤: 1. 了解字符串概念 在C语言中,字符串是由字符组成的数组,以’\0’(NULL)结尾。字符串处理函数是用来处理字符串的,其中包括字符串的输入、输出、比较、拼接、截取等操作。 2. 字符串输入和输出 在C语言中,字符串输入可以使用scanf()函数或gets()函数,字符串输出可以使用printf…

    other 2023年6月20日
    00
  • Android开发中Launcher3常见默认配置修改方法总结

    Android开发中Launcher3常见默认配置修改方法总结 Launcher3是Android系统中的默认桌面应用程序,它提供了用户界面和交互方式来管理设备上的应用程序和小部件。在Android开发中,我们可能需要修改Launcher3的默认配置以满足特定需求。本攻略将详细介绍如何修改Launcher3的常见默认配置。 步骤一:获取Launcher3源代…

    other 2023年9月6日
    00
  • 工作随笔——xshell4安装后应该做的一些事

    工作随笔——xshell4安装后应该做的一些事 作为一个 IT 从业者,我们经常需要使用到一些 SSH 客户端来连接服务器或者设备。而对于 Windows 用户来说,Xshell4 较为常用。在安装完 Xshell4 后,以下几个步骤可以帮助你更好地使用 Xshell4。 一、将 Xshell4 添加到右键菜单 我们经常需要连接到不同的设备或者服务器,而每一…

    其他 2023年3月28日
    00
  • lumia920怎么升级wp8.1? lumia920升级wp8.1教程

    下面是lumia920升级到WP8.1的完整攻略以及两条示例说明。 一、备份数据 在进行任何系统升级前,我们都需要首先备份数据,以免数据丢失或泄露。 1.备份联系人信息 在手机上找到 “人物”(Contacts),选择 “设置”,然后选择 “导出联系人”(export contacts)并将其存储至电脑或云端存储。 2.备份短信 在手机上找到 “消息”(Me…

    other 2023年6月26日
    00
  • 2022年最新Typora的破解方法

    2022年最新Typora的破解方法攻略 前言 Typora 是一款非常优秀的 Markdown 编辑器,可以满足大部分 Markdown 编写的需求。然而,它的商业授权价格较高,并不是所有人都能够负担得起。因此,很多用户会寻找 Typora 的破解方法。 需要注意的是,破解 Typora 非常不道德,我们应该支持正版软件,尊重软件开发者的劳动成果。本文仅供…

    other 2023年6月27日
    00
  • Java中的private修饰符失效了?

    当我们在Java类中使用private修饰符时,意味着只有该类内部的方法和属性可以访问该字段,而其他任何类(包括该类的子类和同一包内的其他类)都不能访问该字段。但有时我们发现,即使使用了private修饰符,也存在其他类可以访问这个字段的情况。本文将为您解决这一问题。 什么情况下private修饰符会失效? 反射 在Java反射机制中,可以使用getDecl…

    other 2023年6月26日
    00
  • python模块之xlsxwriter详解

    以下是详细讲解“python模块之xlsxwriter详解的完整攻略,过程中至少包含两条示例说明”的Markdown格式文本: Python模块之xlsxwriter详解 xlsxwriter是一个流行的Python模块,可以用于创建和操作Excel文件。本攻略将介绍xlsxwriter的基本用法、常用API和两个示例说明。 基本用法 使用xlsxwrite…

    other 2023年5月10日
    00
  • 域名必备知识 域名名词解释大全

    域名必备知识 域名名词解释大全 1. 域名解析(Domain Name Resolution) 域名解析是将域名转换为IP地址的过程。当用户在浏览器中输入一个域名时,浏览器会向域名解析服务器发送请求,解析服务器会返回与该域名对应的IP地址,然后浏览器才能通过IP地址找到对应的网站。 示例说明: 假设用户在浏览器中输入了域名\”www.example.com\…

    other 2023年8月5日
    00
合作推广
合作推广
分享本页
返回顶部