ToolBar代替Actionbar在AppCompatActivity的使用

Android自定义ActionBar实战:Toolbar与AppCompatActivity深度集成指南 ActionBar是Android系统对顶部操作区域的行为契约,而非过时的UI组件;其核心在于统一管理返回导航、菜单展开、状态栏集成与Fragment联动等生命周期行为。基于AppCompatActivity的getSupportActionBar()机制,Toolbar作为物理载体可无缝接入系统级能力,如onCreateOptionsMenu回调、无障碍支持及Material主题适配。这种‘契约抽象+物理实现’模式,显著提升多页面顶部栏的一致性、可维护性与可测试性,广泛应用于政务、金融、医疗等需长期迭代的 阅读详情

新api推荐带ActionBar的Activity,继承AppCompatActivity 处理标题栏

导入项目工具包。兼容包:

 compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:support-v13:23.3.0'

1 .需要给Activity设置主题 无Actionbar即可

  android:theme="@style/Theme.AppCompat.Light.NoActionBar">

2.用toolbar代替Actionbar

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

在代码中转成Actionbar:

    tb= (android.support.v7.widget.Toolbar) findViewById(R.id.bmtool_bar);
        setSupportActionBar(tb);

获取Actionbar:(这里给Actionbar设置了一个home id的属性)

ActionBar ab=getSupportActionBar();
        if(ab!=null){
            ab.setHomeAsUpIndicator(R.drawable.menu_home);
            ab.setDisplayHomeAsUpEnabled(true);
        }

因为Toolbar 已经加入到Activity 中了,因此选项菜单布局,是可以显示到标题栏中的!:

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


为菜单内容设置菜单项:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context="com.cuizehui.Actitys.HomeActivity">

    <item android:id="@+id/more"
        android:title="更多"
        android:icon="@drawable/ic_drag"
        app:showAsAction="always"
        android:orderInCategory="100"/>

</menu>

3为标题栏设置点击事件:

 public boolean onOptionsItemSelected(MenuItem item) {

         switch(item.getItemId()){
            case R.id.more:
                 mMenuDialogFragment.show(fragmentManager,ContextMenuDialogFragment.TAG);//这是一个插件!!
                 break;
             case android.R.id.home:
                 finish();
         }
        return super.onOptionsItemSelected(item);
    }

(android.R.id.home 这个ID 对应上面为Actionbar设置home id 的方法和图标)

最后 写一个复用性高的toolbar:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="@color/colorPrimaryDark"
    app:titleTextColor="@android:color/white"
    android:fitsSystemWindows="true"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

如果没有设置主题,并使用的是AppCompatActivity

那么可以直接使用activity所使用的actionBar

    android.support.v7.app.ActionBar mActionBar=getSupportActionBar();
        if(mActionBar!=null){
            mActionBar.hide();
        }

可通过如上方式设置actionBar是否存在并设置样式。




(二十四)安卓开发中的AppCompatActivity详解 AppCompatActivity是 Android Support Library 中的一个类,最初用来替代早期的(在 Android 5.0 之前使用)。它不仅支持传统的ActionBar,还集成了更现代的ToolBar,并提供了 Material Design 相关的主题和样式支持。它的最大优势是向后兼容性,可以在 Android 2.1(API 7)及以上版本运行,因此非常适合需要支持旧设备的应用开发。当应用需要一个高度可定制的标题栏时,可以使用ToolBar配合。 阅读详情

相关推荐

Android Material Design 系列之 Toolbar 使用详解

前言 在 2014 年 Google IO 大会上,Google 推出了一套全新的设计规范 Material Design,这也为广大的 Android 开发者带来了福音,不用像以前一样照着 IOS 视觉稿来开发 Android APP,Material Design 的视觉风格本身就比较炫酷。 而 Google 也为我们提供符合 Material Design 风格的一系列组件,这大大的提高了我们的开发效率。由于 APP 改版在做 Material Design 化,所以后面会结合项目中的使用情况写几篇关

一名互联网时代苟且偷生的 Android码农 6392

嵌入式GUI开发:emWin图形库Alpha混合与位图绘制技术详解

在嵌入式系统开发中,图形用户界面(GUI)的视觉效果是提升产品竞争力的关键。Alpha混合技术是实现半透明、叠加等高级UI效果的核心原理,它通过RGBA色彩模型中的Alpha通道,控制像素与背景的融合比例,从而实现平滑的视觉过渡。这项技术对于打造流畅、美观的嵌入式界面具有重要价值,广泛应用于医疗设备、工业HMI、智能家居面板等场景。emWin图形库作为嵌入式领域成熟的GUI解决方案,其对Alpha混合和位图绘制提供了强大的支持。本文深入解析了emWin中Alpha混合的实现机制,包括软件与硬件混合模式,并结

chuoshao2508的博客 492

在Matlab中开发AutoSAR模型的流程(自下而上)

前面介绍了AutoSAR软件组件开发的两种方式,其中自下向上的方式,是从模型出发,流程如下。

小胡同学的工程师学习之路 5365

Android中Toolbar的使用 AppCompatActivity必备

我们使用的开发工具是AS,先创建一个项目,名字为Toolbar。一步一步next,最后Finish。AS默认创建的新Activity都是继承AppCompatActivity,所以我们在此基础上来设置Toolbar。创建好的项目如下: [java] view plain copy print? public class MainActivity extend

郭风朴(guofengpu)的Android影音专栏 8798

ARTIX-7 GTP 3G-SDI 工程构建与调试实战

本文详细介绍了基于ARTIX-7 FPGA和GTP收发器的3G-SDI工程构建与调试实战。从基础概念解析到Vivado工程创建、GTP IP核配置、SDI IP核集成,再到系统集成与时钟域处理,提供了全面的技术指导。文章还分享了调试技巧、常见问题排查方法以及性能验证步骤,帮助开发者快速掌握3G-SDI视频传输技术的实现与优化。

weixin_30443813的博客 256

Bellhop海底地形仿真入门:从MATLAB数据导入到3D可视化(附避坑指南)

本文详细介绍了Bellhop海底地形仿真的完整工作流程,从MATLAB数据导入、清洗与坐标转换,到构建.bty输入文件,再到生成高质量3D可视化结果。文章重点解析了数据格式、深度值正负、单位统一及坐标投影等关键环节的避坑指南,并提供了可复用的代码片段,帮助用户高效完成从原始数据到仿真成果的转换。

weixin_29275257的博客 194

安卓开发学习14:Action Bar

解析显示和隐藏Action Bar全局控制Action Bar局部Action Bar设置动态Action Bar配置添加Action Item图标显示和溢出Action Bar配置Action Item添加Action View解析app:actionViewClass配置直接导入布局文件Action Bar和Tab实例层级式导航实例 解析 显示和隐藏Action Bar 全局控制Action Bar API11以上默认是有Action Bar 所以在build gradle中配置最小sdk大于1.

qq_43967413的博客 926

西电计组实验二 运算器实验

算术逻辑运算实验 一.实验目的   1.了解简单运算器的数据传输通路。   2.验证运算功能发生器的组合功能。   3.掌握算术逻辑运算加、减、与的工作原理。   4.验证实验台运算的8位加、减、与、直通功能。   5.按给定数据,完成几种指定的算术和逻辑运算。 二.实验原理   算术逻辑单元ALU的数据通路如图2-1所示。其中运算器ALU181根据74LS181的功能用VHDL硬件描述语言编辑而成,构成8位字长的ALU。参加运算的两个8位数据分别为A[7…0]和B[7…0],运算模式由S[3…0]的16种

Polaris的博客 1万+

ActionBarActivity+AppCompatActivity操作栏功能的使用

由于ActionBarActivity已经过时,用来替代的是AppCompatActivity。但是对于menu的使用还是一样的,下面介绍下对于menu的简单创建,和几个功能的使用。先上效果图 1.创建任意Activity继承AppCompatActivitypublic class MainActivity extends AppCompatActivity 2.然后重写onCreateOpti

丶鹏 1104

il2cpp分析-gobal-metadata.dat解密

打开ida,把libil2cpp拖到ida中按快捷键Shift+F12等待字符串分析完后,搜索global-metadata.dat。ida中双击sub_57EE7C进入,VS code中也跳转到LoadMetadataFile函数。VSCode打开il2cpp源代码,全局搜索global-metadata.dat。工具:010Editor,IDA 7.5,Jadx,VS Code。判断加密逻辑为根据文件的长度循环读取字节码做亦或加密。双击搜索出来的结果,切记要选il2cpp目录下的。

Android_machong的博客 8024

新手也能搞定!用ADS 2023从零设计一个超宽带Wilkinson功分器(附完整版图)

本文详细介绍了如何使用ADS 2023从零开始设计超宽带Wilkinson功分器,涵盖介质板参数设置、微带线计算优化、版图生成验证等关键步骤。通过实例演示和常见问题排查,帮助射频工程新手快速掌握功分器设计技巧,提升设计效率。

weixin_42692935的博客 476

Android学习之路(11) ActionBar与ToolBar的使用

那找找为啥ActionBar的时候对的,直觉告诉我是theme的问题,于是找Theme.AppCompat.Light.DarkActionBar,点击进去看会看到actionBarPopupThem是Light的,就是menu菜单点击弹出那个actionBarTheme是深色系的,那么控制按钮图标和主副标题颜色就是白色的

qq_32907491的博客 3138

实例详解C++程序的五大内存分区

本文详细讲述C++程序在运行时的5大内存分区。 下面使用日常开发中的编程实例,详细介绍一下这5个分区,以便大家能更深刻的理解这5大内存分区。 1、栈内存区 栈内存区是我们用的最多的分区,只要有函数的地方都会使用到这个分区。栈分区是用来存放函数参数及函数局部变量值的内存区,是由编译器在编译时自动分配和释放的。 函数中的参数与函数中的局部变量占用的内存是代码执行到函数(进入函数)是分配的,在............

dvlinker的技术专栏 1万+

Android AppcompatActivity 基础用法

前言 最近大把时间捯饬一些新东西。发现很多东西知道皮毛,深究起来都是半吊子,写个简单的app框架写基类,继承AppcompatActivity改了一大上午。廉颇老矣~,尚能饭否。做个记录 列个大纲: v7包含那些api,可以提供的功能是什么? 从那个版本开始引入的,最初目的是为了解决什么问题? 用AppconpatActivity替换FragmentActivity需要注意什么? ...

Android 工程化与移动架构实践 1万+

让openclaw接入web端的deepseek或着qwen,使用无限token

🪟 Windows: 提供原生的 PowerShell 一键安装支持!配置过程和官方版本是相同的,唯一的区别就是再选则model时要选择带Browser字样的deepseek或者qwen。安装之前需要先清理官方版本的安装痕迹,否则openclaw版本跳转不到这个中文版本。因为此版本与官方版本存在代差,在配置飞书时可能会出现无法安装飞书的情况。剩下的配置保持和官方版本一致操作即可。选中之后需要进行一次网页端的登录。登录后会出现可选择的model。安装完成后会跳到这个中文界面。涉及到接入飞书机器人的操作。

z1872385的博客 302

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

This Activity already has an action bar supplied by the window decor.

Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false...

kang995066277的博客 245

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Adnroid studio之坑This Activity already has an action bar supplied by the window decor

原博客:http://blog.youkuaiyun.com/zhaokaiqiang1992问题描述:继承自AppCompatActivity,使用Toolbar替代ActionBar的时候,出现错误错误信息:2.Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by th...

backer 251

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Android Toolbar自定义实战:替代ActionBar的正确姿势

Toolbar是Android中实现可定制顶部操作栏的核心组件,它本质上是原生ActionBar的可编程代理,通过AppCompatActivity与AppCompatDelegate协同工作,解决原生ActionBar在沉浸式状态栏适配、Fragment独立控制、复杂布局嵌套等方面的不可控问题。其技术价值在于将UI控制权从系统框架下沉至开发者手中,同时保留onOptionsItemSelected等标准事件语义。典型应用场景包括品牌化商业App(银行/政务/教育类)的视觉统一、多Fragment动态菜单管

weixin_30706691的博客 318

深入剖析Android四大组件(九)——Activity之AppCompatActivity与toolbar的结合

本文即介绍Activity之AppCompatActivity也介绍Toolbar。但重点讲解他们结合的效果,两者缺一,其界面的效果都会减分,唯有结合使用,才能将两者的优点放大。那么具体的细节,请查看博文。只要设计到的知识,基本都讲解过了。最后实现的效果也与微信差不多。

李元静 1万+

android actionbar分割线,Android ActionBar和ToolBar的使用

前言自android5.0开始,AppCompatActivity代替ActionBarActivity,而且ToolBar也代替了ActionBar,下面就是ActionBar和ToolBar的使用ActionBar1、截图image.png2、使用2.1、AppCompatActivity和其对应的ThemeAppCompatActivity使用的是v7的ActionBar(和默认的Actio...

weixin_28932617的博客 772

android action bar 风格,Android ActionBar和ToolBar的使用

参考前言自android5.0开始,AppCompatActivity代替ActionBarActivity,而且ToolBar也代替了ActionBar,下面就是ActionBar和ToolBar的使用ActionBar1、截图image.png2、使用2.1、AppCompatActivity和其对应的ThemeAppCompatActivity使用的是v7的ActionBar(和默认的Act...

weixin_39562185的博客 636

动作栏 (ActionBar) 与工具栏 (Toolbar) 的基本使用

通过遵循本文档中的最佳实践,开发者可以有效地为他们的 Android 应用添加功能丰富、用户友好的 Toolbar,从而提升应用的整体用户体验。已成为首选,因为它提供了更大的灵活性和更丰富的定制选项,同时保持了与旧版本 Android 的兼容性。虽然 Toolbar 是推荐的替代方案,但在某些情况下,你可能需要同时支持旧版本的 ActionBar。已成为现代 Android 开发的首选,因为它提供了更大的灵活性、更好的兼容性以及更丰富的定制选项。,因为它提供了更大的灵活性和更好的兼容性。

qq_63736560的博客 836

Toolbar和ActionBar的小结

前言 哼,Toolbar,有够厉害的。算google致力于简化开发,提供的封装好的控件。像这种封装好的自定义控件有很多,比如BottomNavigation、比如TextInputLayout等。贴个material design风格控件网址:Components,有兴趣的可以看看。 ActionBar 描述:活动中的主要工具栏,可以显示活动标题,应用程序级别的导航功能和其他交互式项。 诞生:是Google在Android 3.0(api 11)时代推出的。 Android 5.0之前 要使用Actio

haizhuo的博客 835

如何在AppCompatActivity中屏蔽系统的ActionBar使用自定义的ActionBar获得兼容性

最近在用Android Studio 学习android app开发,但是看见很多资料开发的activity都是从activity类中继承的。但是Android Studio 默认创建创建的activity是继承自AppCompatActivity。一直在学,暂时不觉得两者有太大的区别。但是据说AppCompatActivity的兼容性要比Activity要好。直到学到ActionBar的时候,终于

Winphred的博客 729

Android v7 Toolbar的使用

AndroidToolbar 官方文档 Overview layout布局 Manifest Theme Java 相关的类 待更新官方文档http://developer.android.com/intl/zh-cn/reference/android/support/v7/widget/Toolbar.htmlOverviewv7下的 android.support

yao伟斌 2588

Android学习笔记044之Actionbar和Toolbar

这一篇我们介绍两个相似的控件,分别是Actionbar和Toolbar。Actionbar  Actionbar是Android3.0之后的一个重要的交互元素,Actionbar位于Activity的顶部,用于显示图标、菜单、标题,广泛用于View的交互、导航等功能。在Android3.0之后,Actionbar是默认添加的,只要你新建的Activity继承于AppCompatActivity,Ac

Huawen的博客 1713
上一篇: android studio 工具
下一篇: 利用组合控件实现布局文件抽取复用--自定义view属性抽取
Nela
博客等级 码龄11年 9粉丝 71原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值