Android 用户界面---操作栏(Action Bar 一)

物联网开发笔记(34)- 使用Micropython开发ESP32开发板之控制步进电机(28BYJ-48) 使用Micropython开发ESP32开发板之控制步进电机(28BYJ-48) 阅读详情
操作栏是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的需要突出展现用户操作或全局导航的Activity中,你应该使用操作栏,因为操作栏能够跨应用程序给用户提供一致的界面,并且系统能够很好根据不同的屏幕配置来适应操作栏的外观。你能够用ActionBar的对象的API来控制操作栏的行为和可见性,这些API被添加在Android3.0(API 级别 11)中。

操作栏的主要目的是:

1.  为了标识应用程序的商标和用户的位置而提供的一个专用空间。

这个空间的左边是应用的图标或logo,以及Activity的标题。但是,如果是像当前选择的标签这样的标识当前View对象的导航标签,你可以选择删除Activity的标题。

2.  在不同的应用程序之间提供一致的导航和视觉体验。

操作栏提供了用于Fragment间切换的内置导航标签。它还提供了一个用于替换导航模式或优化当前视觉效果(如按照不同条件排序的列表)的下拉列表。

3.  突出Activity的关键操作(如“搜索”、“创建”、“共享”,等),并且在可预见的方法内给用户提供快捷的访问。

对于关键的用户操作,你能够通过把选项菜单项作为操作项直接放到操作栏中,从而提供快捷的访问。操作项目还能提供一个操作窗口,这个窗口给更直接的操作行为提供一个嵌入的窗口部件。没有改进成操作项的菜单项在溢出菜单中还是有效的,用户既可以使用设备上的菜单按钮(设备上有按钮的时候),也可以使用操作栏中的溢出菜单按钮(当设备上不包含菜单按钮时)来显示这些操作项目。

 

图1. Honeycomb Gallery应用中的操作栏,从左边开始,依次是logo、导航选项标签和操作项(在右边插入的一个溢出菜单按钮)。

 注意:如果你在查找有关上下文操作栏的信息,请看“菜单”指南。

添加操作栏

从Android3.0(API级别 11)开始,操作栏被包含在所有的使用Theme.Hole主题的Activity(或者是这些Activity的子类)中,当targetSdkVersion或minSdkVersion属性被设置为“11”或更大的数值是,这个主题是默认的主题一。如:

<manifest ... >
    <uses-sdk android:minSdkVersion="4"
              android:targetSdkVersion="11" />
    ...
</manifest>

在这个例子中,应用程序要求最小的API版本级别是4(Android 1.6),但是它还要求了目标API版本级别是11(Android 3.0)。这样,当应用程序运行在Android3.0或更高的版本上时,系统就会给每个Activity应用全景主题,这样,每个Activity就会包含操作栏。

如果你想使用ActionBar API来进行添加导航模式和修改操作栏样式的操作,你应该把minSdkVersion属性设置为“11”或更大的值。如果想要你的应用程序支持更旧的Android版本,那么在支持API 级别 11或更高版本,但却依然运行着旧的Android版本的设备上,就要使用受限受限droid如果你运行咋是默认的主题一、。在溢出菜单中是有效的的ActionBar API集。

删除操作栏

对于特殊的Activity,如果你不想要操作栏,把Activity的主题设置为Theme.Holo.NoActionBar就可以了,如:

<activity android:theme="@android:style/Theme.Holo.NoActionBar">

你也能够通过调用hide()方法在运行时隐藏操作栏,如:

ActionBar actionBar = getActionBar();
actionBar.hide();

当操作栏隐藏时,系统会调整你的Activity来填充当前有效的屏幕空间。你能够使用show()方法来再次显示操作栏。

在隐藏和删除操作栏时,要当心为了适应被操作栏占用的空间而导致的Activity的重新布局。如果你的Activity有规律的隐藏和显示操作栏,你可能想要使用覆盖模式。覆盖模式在Activity的顶部描画操作栏,而不是在它们所拥有的屏幕的区域。这样,在操作栏隐藏和重新显示时,你的布局保持不变。要使用覆盖模式,就要给Activity创建一个主题,并且把android:windowActionBarOverlay属性设置为true。

提示:如果你有一个删除了操作栏的定制化的Activity主题,它把android:windowActionBar样式属性设置为false。但是,如果你使用了删除操作栏的一个主题,那么,创建窗口将不允许操作栏再显示,因此,你不能在以后给这个Activity添加操作栏---因为getActionBar()方法将返回null。

添加操作项

有些时候,你可能想要让用户直接访问选项菜单中的一个项目,因此你要把应该在操作栏中显示的菜单项作为一个操作项来声明。操作项能够能够包含一个图标或文本标题。如果一个菜单项不作为一个操作项显示,那么系统就会把它放到溢出菜单中。溢出菜单既可以通过设备的Menu按钮来显示,也可以操作栏中一个额外的按钮来显示。

当Activity首次启动时,系统会调用onCreateOptionsMenu()方法给你的Activity组装操作栏和溢出菜单。在这个回调方法中应该加载在XML文件中定义的菜单项资源,如:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();

inflater.inflate(R.menu.main_activity, menu);
    return true;

}

pic

图2. 带有图标和文本标题的两个操作项,和溢出菜单按钮。

在XML文件中,你能够通过给<item>元素声明android:showAsAction=”ifRoom”s属性,请求把一个菜单项作为一个操作项来显示。用这种方式,只在有有效的空间时,菜单项才能显示在操作栏中。如果没有足够的空间,这个菜单项会显示在溢出菜单中。

如果你的菜单项支持标题和图标---带有android:title和android:icon属性---那么默认情况下,操作项仅显示图标。如果你要显示文本标题,就要给android:showAsAction属性添加withText设置,如:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_save"
          android:icon="@drawable/ic_menu_save"
          android:title="@string/menu_save"
          android:showAsAction="ifRoom|withText" />
</menu>

注意:withText值示意操作栏要显示文本标题。操作栏会尽可能的显示这个标题,但是,如果图标有效并且受到操作栏空间的限制,文本标题有可能显示不全。

当用户选择了一个操作项时,Activity会接收一个onOptionsItemSelected()的回调,要把android:id属性支持的ID传递给这个方法。

给每个菜单项定义android:title属性是至关重要的,即使你没有给操作项声明标题。原因如下:

1.  如果操作栏中没有足够的空间来显示操作项,那么菜单项就会显示在溢出菜单中,并仅显示标题;

2.  屏幕阅读器要给视障用户朗读菜单项标题;

3.  如果仅用图标来显示操作项,那么,用户能够长按这个项目,用操作项的标题来显示提示信息。

注意:如果你添加源于Fragment对象的菜单项,那么通过Fragment类的onCreateOptionsMenu回调方法,当用户选择其中一个Fragment菜单项时,系统会对用那个Fragment对象对应的onOptionsItemSelected()方法。但是,Activity有机会首先处理这个事件,因为系统在调用对应的Fragment对象的onOptionsItemSelected()方法之前会调用Activity的相同的回调方法。

你也能够声明一个菜单项,让它始终作为操作项来显示,而不是在空间不足时就放到溢出菜单中。大多数情况下,你不应该使用always属性值来强制一个菜单项始终显示在操作栏中,但是,当提供了一个不给溢出菜单提供默认操作的操作窗口时,你就需要始终显示一个菜单项。但是要警惕,太多的操作项会创建一个混乱的UI,并且会导致窄屏设备上的布局问题。最好的方法是使用ifRoom属性值,它允许系统在操作栏空间不足的时候,把菜单项移到溢出菜单中。

eNSP与我这24H2版本不兼容,路由器40错误。这该怎么处理(操作系统-windows)(相关搜索:虚拟机) 🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 阅读详情

相关推荐

OpenFOAM高效学习路线:如何用B站+东岳流体3个月掌握CFD仿真

本文分享了一套高效的OpenFOAM学习路线,结合B站视频、东岳流体教程和官方文档,帮助在职工程师在3个月内掌握CFD仿真技术。通过渐进式学习计划和案例训练,从基础到实战,快速提升独立建模能力。

weixin_29202213的博客 317

Android之ActionBar详解

自android3.0来Action Bar就取代了OptionsMenu。于是就涉及了API的设置。     1)        设置,表明应用程序可部署于android3.0或之前。也就是说当设备的SdkVersion==11时,应用程序将启动Action Bar。 但是如何应用程序想使用Action Bar API,即访问ActionBar类。例如:添加tab、改变Action Bar风

YUZHIBOYI的专栏 2万+

安卓集成华为HMS Scankit实现自定义扫码功能

实现扫码功能 使用的是集成华为扫描的SDK,UI界面借鉴的是谷歌官方的Zxing项目中的自定义view,两者结合实现。 先上效果图: 先在项目根级别(build.gradle)当中配置HMS Core SDK的Maven仓地址。 // 配置HMS Core SDK的Maven仓地址。 maven {url 'https://developer.huawei.com/repo/'} // 配置HMS Core SDK的Maven仓地址。 maven {url 'https://developer.huaw

qq_47625961的博客 5512

Android ActionBar

ActionBar 1建立ActionBar Action bar 最基本的形式,就是为 Activity 显示标题,它告知用户他们当前所处的位置,并为你的 app 维护了持续的同一标识。 从 Android 3.0(API lever 11) 开始,所有使用 Theme.Holo 主题(或者它的子类)的 Activity 都包含了 action bar,当 targetSdkVersion 或 minSdkVersion 属性被设置成 “11” 或更大时,它是默认主题。 2添加ActionBar按钮 A

weixin_43664383的博客 1440

分数间隔均衡器的基本原理及应用(使用Matlab)

通过对接收信号进行加权求和,分数间隔均衡器可以抵消信号在传输过程中受到的频率响应失真。Matlab提供了丰富的工具和函数,可以方便地实现分数间隔均衡器,并进行性能评估。分数间隔均衡器(Fractional Interval Equalizer)是一种数字信号处理技术,用于均衡带通信道中的信号失真。分数间隔均衡器的基本原理是通过对接收信号进行加权求和,以抵消信号在传输过程中受到的频率响应失真。分数间隔均衡器在通信系统中具有广泛的应用。最后,我们通过比较均衡后的信号和发送数据的阈值来进行解调,并计算误码率。

2301_79325657的博客 677

从零开始--系统深入学习android(实践-让我们开始写代码-Android框架学习-4.Action Bar)...

第4章 Action Bar Action Bar是一个能用于确定应用程序和用户的位置,并提供给用户操作和导航模式的窗口功能。如果需要显著地展示当前用户的操作或导航,应该使用Action Bar,因为Action Bar为用户提供了一个统一的跨应用程序和系统的接口,并且针对不同尺寸的屏幕优雅的处理了Action Bar的适配。你可以通过ActionBar API来控制它的行为和可视性,这些API...

weixin_34249367的博客 353

杰理AC695N系列芯片 LED7数码管使用教程

杰理AC695N数码管使用摘要 本教程介绍了杰理AC695N芯片驱动LED7数码管的实现方法: 硬件配置:支持7/12/13脚三种数码管类型,详细说明了7脚数码管的标准段码定义和GPIO接线方式。 软件设置: 通过修改配置文件启用LED7功能 配置GPIO引脚映射(PORTC/PORTA组) 选择与硬件匹配的真值表 层次架构:包含硬件层、驱动层、UI层和应用层的完整设计,支持数字、字符和图标显示功能。 实现要点包括正确配置引脚类型、选择真值表,并通过UI风格设置为LED7模式。

qq_42014563的博客 1345

ActionBar、TitleBar、ToolBar的联系和区别

一、ToolBar 1、概述 Google在2015的IO大会上发布了系列的Material Design风格的控件。其中ToolBar是替代ActionBar的控件。由于ActionBar在各个安卓版本和定制Rom中的效果表现不一,导致严重的碎片化问题,ToolBar应运而生。 与ActionBar区别 显示效果跟ActionBar并没有区别。 优点:自定义视图的操作更加简

廿四桥明月夜的博客 1万+

2026.3.13:docker compose运行了Milvus 6个月,占用磁盘近138GB的原因

Docker容器运行Milvus半年后占用138GB磁盘空间,主要原因是容器日志无限增长、容器内写入大量数据未挂载到数据卷,以及未清理临时文件。通过检查发现超大容器目录569035582ce3...占用主要空间。解决方案是使用truncate命令清空容器日志文件(*-json.log),释放磁盘空间。建议配置日志轮转机制,并将数据挂载到宿主机数据卷以避免类似问题。

拥抱具身智能,昇腾Ascend C 194

AI智算-K8s+vLLM & Ray:DeepSeek-r1 671B 满血版分布式推理部署实践

自从上次发布 【AI-智算】K8s+SGLang实战:DeepSeek-r1:671b满血版多机多卡私有化部署全攻略] 文章后,本次将演示另一个主流推理引擎工具——vLLM,结合K8s、LWS、Ray、Volcano等技术栈,部署DeepSeek-r1 671b 满血版分布式推理集群,并对比其与SGLang推理引擎的性能表现。

Kason_iWiki 1825

Android UI开发第二十四篇——Action Bar

Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为action bar能够使应用程序给用户提供一致的界面,并且系统能够很好根据不同的屏幕配置来适应操作栏的外观。你能够用ActionBar的对象的API来控制操作栏的行为和可见性,这些API被添加在Android3.0(API 级别 11)中。

21万+

电力负荷预测 | 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM)

电力负荷预测 | 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM)

天天酷科研的博客 3188

安卓开发——操作栏(Action Bar)的学习

操作栏具有显示应用图标,标题,安置菜单选项,配置应用图标为导航按钮等功能。 一、选项菜单(Option Menus)在新版本的安卓中创建选项菜单并不难,步骤也很简单: 1.在XML中定义选项菜单首先创建一个定义菜单的xml文件,这个文件放在res/menu目录下(没有的话自行创建)。在该xml文件下根标签为<menu>,然后使用<item>标签可以定义具体的菜单项。每个菜单项可以带有图标和文本显

来自星星的の松子的博客 605

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Android开发之操作栏(Action Bar)知识大全

  原文自:http://android.eoe.cn/topic/ui   操作栏是一个窗口功能用于确定应用程序和用户的位置,并提供给用户操作和导航模式。如果需要突出当前用户的操作或导航,应该使用操作栏,因为操作栏为用户提供了一个一致的接口,这个接口跨应用程序和系统,并且不同尺寸的屏幕适配操作栏的外观。你可以通过ActionBar API来控制动作栏的行为和可视性,这个API被添加在An...

Android小子的博客笔记 736

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Android Action Bar学习(一)--基本介绍及使用

转载请注明出处: Action Bar 初步        从今天开始,我们进入Android UI控件的学习阶段。首先我们来了解一下在Android开发中几乎每一个APP都会用到的一个非常重要的控件--Action Bar。Action Bar是在Android3.0之后新增的功能导航栏控件,它标识了用户当前操作界面的位置,并提供了额外的用户动作和界面导航功能。使用Action Ba

叶功恒的博客专栏 4046

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

android如何在底部显示四个按钮,[Android系列—] 四. 添加操作栏(Action Bar)

[Android系列—] 4. 添加操作栏(Action Bar)前言操作栏是最重要的设计元素之一,使用它来实现你的应用程序活动。通过提供多种用户界面功能, 使应用程序快速和其他的Andorid应用程序一致, 以便被用户熟悉和接受。 主要功能包括:1. 标识你的应用程序,指示在应用程序的用户的位置。2. 能很方便的操作重要的功能(像搜索功能)3. 导航和视图切换功能(使用制表符或下拉列表)类似的效...

weixin_34039159的博客 1547

在Action Bar上添加操作按钮

1.添加button按钮  1)在xml文件中指定操作栏显示的按钮 所有的操作按钮和动作溢出提供的其他项目是在一个XML定义的菜单资源。将动作添加到动作栏中,在项目中创建的一个新的XML文件 的res /menu/目录下。 Item表示在操作栏中显示的你想要显示的功能键                android:icon="@drawable/ic_action

软测之路 3614

[安卓教学] 添加操作栏(Action Bar) - 课程介绍

操作栏是应用(App)的activity最重要的设计元素之一。它提供一些涉及用户界面的功能,通过提供跨不同应用的统一行为,将可以使你的应用让用户立即感觉熟悉。一些关键的功能包括: 为你应用的标识提供一个专用的显示空间(space),以及指示用户在应用中所处的位置。 使用一个可预期的...

chuliaoshuo8260的博客 139

[安卓教学] 添加操作栏(Action Bar) - 第一课 - 设置操作栏

在操作栏最基本的形式中,它显示当前activity的标题,同时在标题的左边显示应用的图标。即使是最基本的形式,操作栏也对于所有activity非常有用,它可以告知用户当前所在并且使你的应用保持一个统一的标识。 图示1:一个显示应用图标和activity标题的操作栏 设置添加一个基本...

chuliaoshuo8260的博客 248

如何用Android Action Bar Style Generator在5分钟内创建专业级应用主题

想要为你的Android应用快速创建专业级的操作栏样式吗?Android Action Bar Style Generator就是你的终极解决方案!这个强大的工具能让你在短短5分钟内生成美观、一致的操作栏主题,无需编写复杂的XML代码。无论你是Android开发新手还是经验丰富的开发者,这个工具都能极大地简化你的UI设计流程。😊 ## 什么是Android Action Bar Style G

gitblog_00707的博客 383
上一篇: 关于INSTALL_FAILED_MISSING_SHARED_LIBRARY错误的解决方法
下一篇: Android 用户界面---操作栏(Action Bar 二)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值