android笔记-toolbar

2024-06-15 09:58
文章标签 android 笔记 toolbar

本文主要是介绍android笔记-toolbar,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        ToolBar是Android 5.0推出的一个新的导航控件用于取代之前的ActionBar。ActionBar由于其设计原因,只能位于Activity的顶部,从而不能实现一些MaterialDesign的效果。ToolBar的强大之处在于不仅继承ActionBar的所有功能,而且很灵活,可以配合其他控件完成一些MaterialDesign的效果。

        一、ToolBar的使用

1、引入support v7支持包

        官方考虑到仍有一部分用户的手机版本号低于5.0,所以,ToolBar也放进了support v7包内,使得低版本的系统也能使用上ToolBar。所以为了支持低版本需要引入support v7支持包。

        build.gradle内输入如下代码:

dependencies {     compile 'com.android.support:appcompat-v7:23.1.1'
}

2、更改主题

        任何一个新建的项目默认都显示ActionBar。为了能够正常使用ToolBar,我们需要隐藏原来的ActionBar,这个可以在主题中修改,在values/styles.xml中做出如下修改:

    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"><item name="colorPrimary">@color/colorPrimary</item><item name="colorPrimaryDark">@color/colorPrimaryDark</item><item name="colorAccent">@color/colorAccent</item><item name="colorControlNormal">@color/grey</item><item name="colorControlActivated">@color/blue_black</item></style>

3、布局文件定义

    <android.support.v7.widget.Toolbarandroid:id="@+id/tool_bar"android:layout_width="match_parent"android:layout_height="wrap_content"></android.support.v7.widget.Toolbar>

4、代码设置

具体含义看注释。

        Toolbar toolbar = (Toolbar) findViewById(R.id.tool_bar);// 设置标题toolbar.setTitle("title");// 设置子标题toolbar.setSubtitle("SubTitle");// 设置图标toolbar.setLogo(R.drawable.ic_launcher);// 将ToolBar传入作为ActionBarsetSupportActionBar(toolbar);// 设置导航图标toolbar.setNavigationIcon(R.drawable.icon_plus);// 设置导航图标点击监听toolbar.setNavigationOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Toast.makeText(ToolbarTestActivity.this, "Navigation click", Toast.LENGTH_SHORT).show();}});

效果如下:

5、颜色更改

以前ActionBar上文字的颜色一般是白色,但是上图中文字是黑色。这是为什么呢?

因为style中app的主题设置的是淡色主题,因此ToolBar也是淡色主题,而ToolBar上面的元素会用深色系(为了和主题颜色区分,才能看得出来)。为了让ToolBar使用深色主题,我们为ToolBar设置android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"。同时为ToolBar设置背景android:background="@color/colorPrimary"(为了美观),效果如下:


        但是设置成深色主题后也会又一个问题:如果ToolBar中有菜单按钮,那么弹出的菜单项也是深色主题,十分难看。可以通过app:popupTheme属性单独将菜单项设置为淡色主题。

app:popupTheme="@style/Theme.AppCompat.Light"

                  

6、添加菜单选项

一般导航条,在其右侧都会有菜单选项 。这里和ActionBar是一样的。

1)、在res->menu目下新建toolbar_menu.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"><itemandroid:id="@+id/menu_item1"android:icon="@drawable/app_poslogon"android:title="签到"app:showAsAction="always|withText"/><itemandroid:id="@+id/menu_item2"android:icon="@drawable/app_query"android:title="查询"app:showAsAction="always"/><itemandroid:id="@+id/menu_item3"android:icon="@drawable/app_setting"android:title="设置"app:showAsAction="never"/>
</menu>

2)、在Activity中,重写onCreateOptionsMenu()方法,把菜单加载进去。

    @Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.toolbar_menu, menu);return true;}

效果如下:

3)、添加点击事件

方式一、在Activity中,重写onOptionsItemSelected()方法

    @Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()){case R.id.menu_item1:Toast.makeText(this, "签到", Toast.LENGTH_SHORT).show();break;case R.id.menu_item2:Toast.makeText(this, "结算", Toast.LENGTH_SHORT).show();break;case R.id.menu_item3:Toast.makeText(this, "设置", Toast.LENGTH_SHORT).show();break;}return true;}

方式二、使用ToolBar设置监听

        toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {@Overridepublic boolean onMenuItemClick(MenuItem item) {switch (item.getItemId()){case R.id.menu_item1:Toast.makeText(ToolbarTestActivity.this, "签到", Toast.LENGTH_SHORT).show();break;case R.id.menu_item2:Toast.makeText(ToolbarTestActivity.this, "结算", Toast.LENGTH_SHORT).show();break;case R.id.menu_item3:Toast.makeText(ToolbarTestActivity.this, "设置", Toast.LENGTH_SHORT).show();break;}return true;}});

这篇关于android笔记-toolbar的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1063134

相关文章

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Android WebView无法加载H5页面的常见问题和解决方法

《AndroidWebView无法加载H5页面的常见问题和解决方法》AndroidWebView是一种视图组件,使得Android应用能够显示网页内容,它基于Chromium,具备现代浏览器的许多功... 目录1. WebView 简介2. 常见问题3. 网络权限设置4. 启用 JavaScript5. D

Android如何获取当前CPU频率和占用率

《Android如何获取当前CPU频率和占用率》最近在优化App的性能,需要获取当前CPU视频频率和占用率,所以本文小编就来和大家总结一下如何在Android中获取当前CPU频率和占用率吧... 最近在优化 App 的性能,需要获取当前 CPU视频频率和占用率,通过查询资料,大致思路如下:目前没有标准的

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

Android里面的Service种类以及启动方式

《Android里面的Service种类以及启动方式》Android中的Service分为前台服务和后台服务,前台服务需要亮身份牌并显示通知,后台服务则有启动方式选择,包括startService和b... 目录一句话总结:一、Service 的两种类型:1. 前台服务(必须亮身份牌)2. 后台服务(偷偷干

Android kotlin语言实现删除文件的解决方案

《Androidkotlin语言实现删除文件的解决方案》:本文主要介绍Androidkotlin语言实现删除文件的解决方案,在项目开发过程中,尤其是需要跨平台协作的项目,那么删除用户指定的文件的... 目录一、前言二、适用环境三、模板内容1.权限申请2.Activity中的模板一、前言在项目开发过程中,尤