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

Reeds-Shepp曲线公式推导及代码实现-第二部分(共三部分)

文章目录2. Reeds-Shepp求解2.1 L+S+L+L^+S^+L^+L+S+L+2.2 L+S+R+L^+S^+R^+L+S+R+2.3 L+R−L+L^+R^-L^+L+R−L+2.4 L+R−L−L^+R^-L^-L+R−L−2.5 L+R+L−L^+R^+L^-L+R+L−2.6 L+Rβ+Lβ−R−L^+R_{\beta}^+L_{\beta}^-R^-L+Rβ+​Lβ−​R−2.7 L+Rβ−Lβ−R+L^+R_{\beta}^-L_{\beta}^-R^+L+Rβ−​Lβ−​R+2.8

jianmo的博客 1212

Android中Toolbar的使用 AppCompatActivity必备

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

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

手把手教你用STM32CubeMX配置I3C通信(含动态地址分配实战)

本文提供了一份基于STM32CubeMX配置I3C通信的实战指南,重点讲解了动态地址分配的实现步骤。通过详细的工程配置、从设备枚举、CCC命令使用及数据读写示例,帮助开发者快速掌握这一高效通信协议,以替代传统的I2C或SPI接口,满足多传感器连接与低功耗设计需求。

c8d9e0f1的博客 543

配电网可靠性评估(一)—最小路法和非序贯蒙特卡洛模拟法的matlab实现

电力系统的可靠性研究是相关领域的热点问题。根据研究对象的不同,又可分为发电系统的可靠性,输电系统的可靠性和配电系统的可靠性。配电网在电力系统中处于最末端的位置,直接和用户相连,一旦出现故障情况,就会在用户侧表现为停电事故。因此对配电网的可靠性评估有着重大意义。......

配电网和matlab的博客 1万+

安卓开发学习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

opencv基础57-模板匹配cv2.matchTemplate()->(目标检测、图像识别、特征提取)

OpenCV 提供了模板匹配(Template Matching)的功能,它允许你在图像中寻找特定模板(小图像)在目标图像中的匹配位置。模板匹配在计算机视觉中用于目标检测、图像识别、特征提取等领域。: 首先,加载目标图像和要匹配的模板图像。: 选择适当的匹配方法,例如 cv2.TM_CCOEFF、cv2.TM_CCOEFF_NORMED、cv2.TM_CCORR、cv2.TM_CCORR_NORMED、cv2.TM_SQDIFF 或 cv2.TM_SQDIFF_NORMED。每种方法对应不同的匹配计算方式。

小海聊智造 1万+

ActionBarActivity+AppCompatActivity操作栏功能的使用

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

丶鹏 1104

YOLOv8【第十章:多任务扩展深度篇·第1节】YOLOv8-Seg 实例分割:Mask原型生成与系数预测原理解析!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏。该专栏系统复现并梳理全网各类 YOLOv8 改进与实战案例(当前已覆盖分类 / 检测 / 分割 / 追踪 / 关键点 / OBB 检测等方向),坚持持续更新 + 深度解析,质量分长期稳定在 97 分以上,可视为当前市面上 覆盖较全、更新较快、实战导向极强 的 YOLO 改进系列内容之一。

**My Coding Family** 1810

让 ABAP Screen Variant 安稳上车:SHD0 与 SHD0_MANDT 的 Transport 全攻略

摘要: SAP项目常需优化交易码界面,通过SHD0的Transaction Variant和Screen Variant可实现字段精简、默认值预设及权限控制,避免修改标准代码。但跨系统迁移时易出现变式丢失或版本兼容问题。核心概念包括: Screen Variant:针对单个屏幕的字段属性配置(跨Client); Transaction Variant:串联多屏幕变式(分跨Client和Client-specific); 版本差异:4.70/6.x后需区分SHD0(跨Client)与SHD0_MANDT(Cl

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

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

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

qq_32907491的博客 3138

22、自动化地图制作与Pandas数据处理

本文介绍了在ArcGIS Pro中使用arcpy.mp模块进行自动化地图制作的关键技术,涵盖地图元素的访问、移动与文本修改,以及将布局批量导出为JPEG、PNG和PDF格式的方法。同时,文章深入探讨了Pandas在数据处理和地理空间分析中的应用,特别是Spatially Enabled DataFrames(SEDFs)的使用。通过综合案例展示了地图更新与数据清洗、分析的结合,提升了地图制作与数据处理的效率,为GIS自动化工作流提供了实用指南。

w8x9y0z1的博客 78

Android AppcompatActivity 基础用法

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

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

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

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

精雕软件(JDpaint) 5.5 绿色版

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

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

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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、付费专栏及课程。

余额充值