Android ToolBar控件详解及实例

yizhihongxing

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#实现代码移除窗体上的控件”的完整攻略。 思路 要实现移除窗体上的控件,我们需要做以下两个步骤: 从窗体控件集合中移除要移除的控件; 调用控件的 Dispose() 方法释放资源。 下面我们将详细分步讲解。 1. 从窗体控件集合中移除要移除的控件 在窗体上移除控件,我们需要从窗体的控件集合中移除要移除的控件。C# 中,每个控件都有一个 C…

    other 2023年6月26日
    00
  • 批处理入门与提高

    批处理入门与提高完整攻略 什么是批处理? 批处理是一种批量处理计算机操作的方式。它可以自动化重复性任务,提高工作效率。 如何写批处理脚本? 使用记事本或其他文本编辑器编写批处理脚本,文件扩展名为”.bat”或”.cmd”。以下是一个简单的批处理脚本示例: @echo off echo Hello World! pause 运行效果为,在命令行中输入脚本名称,…

    other 2023年6月26日
    00
  • iPhone开发者测试版无法通过描述文件安装怎么办 iPhone开发者测试版无法安装解决方法

    问题描述: 在进行iPhone开发者测试版安装时,有时会遇到无法通过描述文件安装的情况。这时我们该怎么办呢? 解决方法: 1.检查描述文件有效期 描述文件是有有效期的,如果描述文件已经过期,就不能用它安装应用程序了。因此,我们首先需要确认描述文件的有效期是否已过。具体的方法是进入苹果开发者网站,在”Certificates, Identifiers &amp…

    other 2023年6月26日
    00
  • IOS视图控制器的生命周期实例详解

    我们来详细讲解一下 “iOS视图控制器的生命周期实例详解”。 什么是视图控制器的生命周期 在iOS开发中,每个视图控制器都有自己的生命周期,即它从创建到销毁的整个过程。视图控制器的生命周期非常重要,因为它可以帮助我们在不同的时刻做出响应和处理一些必要的逻辑。 视图控制器的生命周期分为以下几个阶段: 初始化阶段: 视图控制器被创建时调用,可以在此阶段进行一些初…

    other 2023年6月27日
    00
  • amazondynamodb概览

    以下是“Amazon DynamoDB概览的完整攻略”的标准markdown格式文本,其中包含了两个示例说明: Amazon DynamoDB概览 Amazon DynamoDB是一种全托管的NoSQL数据库服务,提供快速、可扩展和高可用性的数据存储。本文将介绍Amazon DynamoDB的概览,包括如何创建表、何查询数据等。 1. 创建表 在Amazon…

    other 2023年5月10日
    00
  • 基于python实现从尾到头打印链表

    下面是“基于python实现从尾到头打印链表”的完整攻略。 题目描述 输入一个链表的头节点,按照从尾到头的顺序返回节点的值。 解题思路 要打印链表的倒序,可以考虑借用栈的数据结构来实现。可以通过遍历链表,将节点依次压入栈中,最后依次弹出栈中的元素,即可实现将链表的值按照从尾到头的顺序打印出来。另一种更优化的方法是递归实现,将打印当前节点的值的过程看作递归操作…

    other 2023年6月27日
    00
  • android ItemTouchHelper实现可拖拽和侧滑的列表的示例代码

    Android ItemTouchHelper实现可拖拽和侧滑的列表攻略 1. 添加依赖库 首先,在你的项目的build.gradle文件中添加以下依赖库: implementation ‘androidx.recyclerview:recyclerview:1.2.0’ 2. 创建RecyclerView 在你的布局文件中添加一个RecyclerView:…

    other 2023年8月20日
    00
  • php获取ip及网址的简单方法(必看)

    PHP获取IP及网址的简单方法(必看) 在PHP中,获取用户的IP地址和当前网址是非常常见的需求。下面是一种简单的方法来实现这个目标。 获取IP地址 要获取用户的IP地址,可以使用$_SERVER超全局变量中的REMOTE_ADDR键。以下是获取IP地址的示例代码: $ip = $_SERVER[‘REMOTE_ADDR’]; echo \"您的I…

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