ActionBar简介

Android ActionBar 技术深度解析 ActionBar允许开发者添加自定义视图,以实现特定的 UI 需求。开发者可以通过方法设置自定义视图。ActionBar允许开发者添加自定义视图,以实现特定的 UI 需求。开发者可以通过方法设置自定义视图。ActionBar是 Android 应用中的一个重要组件,它提供了丰富的功能和灵活的定制选项。尽管在最新的 Android 版本中,Toolbar已经取代了ActionBar,但ActionBar仍然在许多应用中发挥着重要作用。通过深入理解ActionBar。 阅读详情

原文出处:http://www.ccbu.cc/android/actionbar-intro

ActionBar是Android 3.0以后Anrdoid系统增加的导航栏功能控件。它标识了用户当前操作界面的位置,并提供了额外的用户动作、界面导航等功能。使用ActionBar的好处是,它可以给提供一种全局统一的UI界面,使得用户在使用任何一款软件时都懂得该如何操作,并且ActionBar还可以自动适应各种不同大小的屏幕。由于ActionBar是在3.0以后的版本中加入的,如果想在2.x的版本里使用ActionBar的话则需要引入Support Library。

1. 系统默认Actionbar用法简介

首先介绍在Android 3.0以上的系统中使用系统默认的Actionbar的使用方法。在3.0以上的系统中,通过直接集成最基础的Activity即可使用Actionbar。

在onCreate中设置Actionbar

ActionBar actionBar = getActionBar();
if (actionBar != null) {
    actionBar.setLogo(R.drawable.ic_logo);//自定义logo
    actionBar.setDisplayUseLogoEnabled(true);//使能用户自定义logo
    actionBar.setHomeButtonEnabled(true);//设置actionBar的Home键可点击
}

在子界面中我们可以配置返回上一级的操作,此时actionbar中会多出一个返回箭头。onCreate中可以做如下的操作:

mActionBar = getActionBar();
if (mActionBar != null){
    mActionBar.setDisplayHomeAsUpEnabled(true);//设置Home按键作为返回上一级
    mActionBar.setDisplayShowHomeEnabled(false);//不显示Home键Icon
}

另外还需要在AndroidManifest.xml的Activity中配置android:parentActivityName属性。

<activity
    android:name="SubActivity"
    android:parentActivityName="ParentActivity"/>

2. 为Actionbar添加菜单项

首先需要在res/menu/下新建一个menu文件menu_set.xml

<menu 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"
	tools:context="com.test.test.MainActivity">
	<item
		android:id="@+id/refresh"
		android:orderInCategory="100"
		android:title="/刷新"
		android:icon="@drawable/ic_refresh"
		android:showAsAction="always"/>
	<item
		android:id="@+id/setting"
		android:orderInCategory="100"
		android:title="设置"
		android:icon="@drawable/ic_settings"
		android:showAsAction="ifRoom"/>
	<item
		android:id="@+id/play"
		android:orderInCategory="100"
		android:title="退出"		
		android:icon="@drawable/ic_exit"
		android:showAsAction="never"/>
</menu>

Menu 标签中 Item 标签的主要属性包括:

属性名定义
android:orderInCategory表示每个 item 的优先级,值越大优先级越低, actionbar 地方不够就会放到 overflow 中
android:titleitem 的标题
android:iconitem 显示的图标
android:showAsActionitem 显示的方式

其中 showAsAction 属性接包含以下一些定义:

属性说明
ifRoom会显示在 Item 中,但是如果已经有 4 个或者 4 个以上的 Item 时会隐藏在溢出列表中。
当然个数并不仅仅局限于 4 个,依据屏幕的宽窄而定
never永远不会显示。只会在溢出列表中显示,而且只显示标题,
所以在定义 item 的时候,最好把标题都带上
always无论是否溢出,总会显示
withTextwithText 值示意 Action bar 要显示文本标题。 Action bar 会尽可能的显示这个标题,但是,
如果图标有效并且受到 Action bar 空间的限制,文本标题有可能显示不全
collapseActionView声明了这个操作视窗应该被折叠到一个按钮中,当用户选择这个按钮时,这个操作视窗展开。
否则,这个操作视窗在默认的情况下是不可见的。一般要配合 ifRoom 一起使用才会有效果

定义好menu配置文件后,在代码中加载menu。

public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu_set, menu);
        return true;
    }

而通过重写onOptionsItemSelected,即可对相应菜单的select事件进行处理。
在一些有物理菜单按钮的机器上,默认情况下overflow按钮可能会出现显示不出来的情况,通过onCreate中调用以下函数即可显示出来。

/**
 * 即使有物理菜单键也显示ActionBar的flowMenu
 */
public static void showOverflowMenu(Context context) {
    try {
        ViewConfiguration config = ViewConfiguration.get(context);
        //使用java反射技术,获取getDeclaredField类的私有属性sHasPermanentMenuKey
        Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
        if(menuKeyField != null){
            menuKeyField.setAccessible(true); //将属性设为可访问的
            menuKeyField.setBoolean(config, false);  //为属性赋值为false
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

3.Actionbar样式自定义

ActionBar默认的样式是很丑陋的,所以下面简单的介绍一下如何进行自定义ActionBar的样式。

 <style name="AppThemeBase" parent="android:Theme.Holo">
    <item name="android:actionOverflowButtonStyle">@style/actionbar_overflow</item>//overflow按钮样式,即最右边点击弹出隐藏菜单项的按钮
    <item name="android:actionBarStyle">@style/actionbar_style</item>//actionbar样式
    <item name="android:homeAsUpIndicator">@drawable/icon_back</item>//设置上一级按钮图标资源
    <item name="android:windowActionBarOverlay">true</item>//设置actionbar悬浮显示
</style>

<style name="actionbar_overflow" parent="@android:style/Widget.Holo.ActionButton.Overflow">
    <item name="android:src">@drawable/ic_overflow</item>//设置overflow按钮图标
</style>

<style name="actionbar_style" parent="@android:style/Widget.Holo.ActionBar">
    <item name="android:background">@color/backgnd</item>//设置actionbar背景颜色,可以设置为半透明的颜色
    <item name="android:titleTextStyle">@style/actionbar_title_text</item>//设置标题文字样式
</style>

<style name="actionbar_title_text" parent="@android:style/TextAppearance.Holo.Widget.ActionBar.Title">
    <item name="android:textSize">18dp</item>//设置文字大小
</style>

同过上面的例子,我们就可以举一反三的定义自己想要的样式。

Android界面开发详解:ActionBar编程 它通常位于屏幕的顶部,提供了应用程序的标题、导航按钮和其他操作按钮。ActionBar提供了一种方便的方式来导航和操作应用程序,提升用户体验和应用程序的功能性。除了基本的标题和导航按钮之外,ActionBar还可以添加其他自定义的操作按钮。首先,我们需要在Android项目的布局文件中定义ActionBar的外观和位置。需要注意的是,如果你希望在ActionBar中显示导航按钮,并且点击导航按钮后返回上一个界面,你需要在。方法获取ActionBar的实例,并设置标题为"My App",并显示导航按钮。 阅读详情

相关推荐

UBUNTU使用RTL8811CU网卡(包含树莓派)

下载驱动 从绿联中下载:链接 下载解压后,chmod Linux文件夹 sudo chmod -R 777 ./Linux/ 修改系统的BOOT Secure为disable,参考链接:链接 sudo apt install mokutil sudo mokutil --disable-validation 重启电脑后,按照提示选择change secure boot state,并输入对应的字母(并不是全部密码,而是第几个),选择disable即可 进入Linux文件夹,运行命令 ..

Hot_Ant的博客 6246

【Android UI设计与开发】8.顶部标题栏(一)ActionBar 奥义·详解

一、ActionBar介绍   在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个非常重要的交互元素,Action Bar取代了传统的tittle bar和menu,在程序运行中一直置于顶部,对于Android平板设备来说屏幕更大它的标题使用Action Bar来设计可以展示更多丰富的内容,方便操控。 二、ActionBar的功能  ...

2832

基于ROS的室内移动机器人自主导航技术

随着机器人技术的发展,近些年来室内移动机器人的研究热度越来越高。本文主要利用ROS操作系统对室内移动机器人的建图定位与自主导航关键技术进行研究。 ROS是目前开发较为完整具有广阔应用前景的开源机器人操作系统,具有分布式、模块化、代码复用等优良特点。同时ROS还提供了许多开源库,在这些库的基础之上研究同时定位与地图构建和机器人自主导航技术可以节省大量时间。 ORB-SLAM2是比较优秀的视觉SLAM算法之一,它具有计算量比较小、能够实时运行等优点。在介绍ORB-SLAM2的框架之前,首先会介绍视觉SLAM的一

weixin_44553616的博客 1910

Android25_ActionBar

一、ActionBar:(动作栏) (一)、简介:(扩展TitleBar)         Action bar(动作栏)是一个导航控件,用以代替传统屏幕顶端的标题栏。ActionBar显示在屏幕顶部的控件,它包括了在左边显示的应用的logo图标和右边操作菜单的可见项。类似于windows桌面程序的工具栏。 效果如下图: 1、ActionBar主要功能:   

雷家二少 634

学术报告系列(二) - 智能自主作业机器人感知与控制技术及发展趋势

收集整理于2022年模式识别高峰论坛湖南大学王耀南院士报告(报名题目:智能自主作业机器人感知与控制技术及发展趋势)

Make something people want. 4696

Jetson Orin NX 单目标跟踪算法实战

本文对比了NanoTrack和MixFormerV2两种目标跟踪算法在Jetson Orin NX边缘设备上的实际表现。通过天空小目标跟踪场景测试发现,NanoTrack虽然表征能力较弱,但具有目标身份一致性强、失败模式可控、计算负担小等优势,更适合作为边缘端默认算法。MixFormerV2则适用于高速运动等特定场景。实验数据显示NanoTrack在Orin NX上可达200FPS,远高于MixFormerV2的38-120FPS。建议先采用NanoTrack构建稳定系统,后续再评估复杂算法的适用性。

karmueo46的博客 625

Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)

Action Bar是一种新増的导航栏功能,在Android 3.0之后加入到系统的API当中,它标识了用户当前操作界面的位置,并提供了额外的用户动作、界面导航等功能。使用ActionBar的好处是,它可以给提供一种全局统一的UI界面,使得用户在使用任何一款软件时都懂得该如何操作,并且ActionBar还可以自动适应各种不同大小的屏幕。下面是一张使用ActionBar的界面截图。其中,[1]是ActionBar的图标,[2]是两个action按钮,[3]是overflow按钮

郭霖的专栏 24万+

Docker环境下onlyOffice 7.5.1破解版部署全攻略(含ARM架构适配)

本文提供了在Docker环境中部署OnlyOffice 7.5.1破解版的完整实战指南。内容涵盖x86与ARM架构服务器的详细部署步骤、环境配置、持久化存储设置以及生产环境下的安全与性能优化。重点解决了ARM架构适配的常见问题,并分享了使用Docker Compose进行服务编排和日常维护的技巧,帮助用户快速搭建私有化文档协作平台。

redis7keeper的博客 354

Android学习:ActionBar简介

Android学习:ActionBar简介

weixin_47123512的博客 2379

Unity 多线程编程笔记 _Task详解

士大夫

weixin_43405845的博客 4384

让 ABAP 复杂内表优雅“喂饱”:Complex Internal Table Filling 全面实战指南

本文为ABAP开发者系统梳理了复杂内表的填充与复制方法。重点介绍了work area的两种声明方式、APPEND操作的多形态用法及其初始值语义,以及VALUE #( )构造器的逐行与整表写法。同时讲解了CORRESPONDING的同名字段映射功能,帮助开发者在"航司与航线"等复杂业务场景中实现最佳实践。文章还涵盖内存优化、可读性建议和常见误区,提供可运行样例,适用于ABAP On-Premise和SAP BTP环境。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 168

ActionBar第一课简介

.ActionBar简介 ActionBar是显示在界面顶部的标题栏。官方推荐开发人员尽量使用 ActionBar取代OptionsMenu和TabHost. 典型应用方式有: 使用导航栏中的应用程序图标响应操作; 显示系统菜单(OptionsMenu) 在导航栏中添加下拉式菜单; 在导航栏中使用动作控件; 添加导航选项标签(Tab); 使用ActionProvider.

程序员 1012

为什么reg2cgate的setup难以满足?

从图上我们可以看出,clock gate的clock latency是delay1,reg1的clock latency是delay1+delay2,可以明显的看出,reg2cgate的setup,其launch clock path delay天生是要比capture clock path delay要多delay2的,因此其setup相对于reg2reg是不好满足的。因此,在数字后端脚本、flow上比较擅长,大家如果有相关的问题,可以提供答疑咨询服务。因此,能够让我们去处理的就是delay2的值。

芯冰乐 1934

ActionBar基本简介

ActionBar基本简介 △本文介绍如下内容: →ActionBar的简介。 →如何添加ActionBar。 →为ActionBar设置按钮。 →为子窗体设置回退键返回到上一级的窗体。

Kingfar Ou 977

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

ActionBar(1)简介

1.    什么是操作栏(ActionBar是android3.0及之后的版本添加的新特性):       1) ActionBar是一个显示在屏幕顶部的控件,它包括了在左边显示的应用的logo图标和右边操作菜单的可见项。     2)  我们可以选择可见的操作菜单可见项,不可见项会以下拉列表的形式呈现出来。     3) ActionBar同时也为Fragment之间提供

学习笔记 507

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

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

Android actionbar 使用简介

1、ActionBar的简介 ActionBar位于Activity的顶部,可用来显示activity的标题、Icon、Actions和一些用于交互的View。它也可被用于应用的导航。 ActionBar 是在Android 3.0(API 11)中加入到SK中的,想在低版本中使用ActionBar有两种选择:使用http://actionbarsherlock.com 或使用Support

licong0716的专栏 459

android actionbar menu菜单样式,ActionBar 样式详解 -- 样式 主题 简介

(2) AppTheme 定义style.xml 文件: 该文件定义了AppTheme主题;--代码示例:--代码解析: AppTheme 主题继承了 AppBaseTheme 主题, 而 AppBaseTheme 主题确不是固定的, 在 /res/values-v14 中的 style.xml 中也定义了 AppBaseTheme, 该 AppBaseTheme 可以覆盖 在 res/value...

weixin_30388285的博客 916

ActionBar 样式详解 -- 样式 主题 简介

1. 样式资源解析 (1) 样式简介 样式解析 : 样式是设置给 View 组件的多个属性的集合;  -- 样式的好处 : 给一个 TextView 设置 文字大小, 颜色, 对齐方式等, 如果需要给多个 TextView 设置同样的属性, 这里使用样式就可以大大节省了代码量; 样式指定 : 每个 View 组件都有一个 style 属性, 可以通过

SunnyAndroider专栏 6799

android 4个button 田字布局,ActionBar简介

ActionBar是Android 3.0以后Anrdoid系统增加的导航栏功能控件。它标识了用户当前操作界面的位置,并提供了额外的用户动作、界面导航等功能。使用ActionBar的好处是,它可以给提供一种全局统一的UI界面,使得用户在使用任何一款软件时都懂得该如何操作,并且ActionBar还可以自动适应各种不同大小的屏幕。由于ActionBar是在3.0以后的版本中加入的,如果想在2.x的版本...

weixin_29128689的博客 439

ActionBar 样式详解 -- 样式 主题 简介 Actionbar 的 icon logo 标题 菜单样式修改

一. 样式 和 主题 资源 1. 样式资源解析 (1) 样式简介 样式解析 : 样式是设置给 View 组件的多个属性的集合;  -- 样式的好处 : 给一个 TextView 设置 文字大小, 颜色, 对齐方式等, 如果需要给多个 TextView 设置同样的属性, 这里使用样式就可以大大节省了代码量; 样式指定 : 每个 View 组件都有一个 style 属性, 可以通过该属性

wuruiaoxue的专栏 776

【Android 应用开发】 ActionBar 样式详解 -- 样式 主题 简介 Actionbar 的 icon logo 标题 菜单样式修改

a. 样式 和 主题详解 ; . b. Actionbar 主题详解 . c. ActionBar 样式修改

让 学习 成为一种 习惯 ( 韩曙亮 の 技术博客 ) 1万+

Android中的ActionBar的简介(翻译自官方文档)——————个人笔记

ActionBar在3.0以后提供,在主题为Theme.Holo中的Activity中是默认存在的。 向下兼容:          1、删除或隐藏ActionBar    a.在指定的Activity指定主题@android:style/Theme.Holo.NoActionBarf    b.使用方法hide()隐藏,或者使用show()方法显示    note:

hncgc1990的专栏 1506

【Android 应用开发】 ActionBar 样式详解 -- 样式 主题 简介 Actionbar 的 icon logo 标题 菜单样式修改...

作者 : 万境绝尘 (octopus_truth@163.com) 转载请著名出处 :http://blog.youkuaiyun.com/shulianghan/article/details/39269163 示例代码下载 : -- GitHub :https://github.com/han1202012/Octopus_ActionBarStyle.git -- 优快云 :http://down...

f059074251的专栏 334
上一篇: Android Drawable之GradientDrawable
下一篇: ProgressBar简介
ccbuluo
博客等级 码龄17年 76粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值