Android自定义标题栏

Android 标题栏、状态栏、系统栏、导航栏、应用栏及各个位置的颜色设置 自2014年Google I/O上Material Design横空出世后,市场上的应用又逐步趋向了样式的风格统一,support library中很快就出来了ToolBar控件,一个定制化的ViewGroup,来完善ActionBar的使用。Actionbar是Android3.0之后的一个重要的交互元素,Actionbar位于Activity的顶部,用于显示图标、菜单、标题,广泛用于View的交互、导航等功能。在Android3.0之后,Actionbar是默认添加的,只要你。下拉就会出现通知栏。 阅读详情
 

第一步,向实现自定义标题栏,需要在onCreate方法里这样写


requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);  
  1.   
  2. setContentView(R.layout.main);  
  3. getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_bar);  

注意:

requestWindowFeature要在setContentView之前

getWindow().setFeatureInit最好在setContentView之后


第二步,就是写好自己的布局文件,实现标题栏的自定义。

不过我们会遇到一些问题,就是标题栏的高度不能自定义~下面就是解决办法~



下面,我们看一下android title标题栏 在源码 framework中的XML文件


screen_custom_title.xml

<LinearLayout android:orientation="vertical" android:fitsSystemWindows="true">  
  1. <FrameLayout android:id="@android:id/title_container"   
  2.              android:layout_width="match_parent"   
  3.              android:layout_height="?android:attr/windowTitleSize"   
  4.              style="?android:attr/windowTitleBackgroundStyle">  
  5.     </FrameLayout>  
  6. <FrameLayout android:id="@android:id/content"   
  7.              android:layout_width="match_parent"   
  8.              android:layout_height="0dip"   
  9.              android:layout_weight="1"   
  10.              android:foregroundGravity="fill_horizontal|top"   
  11.              android:foreground="?android:attr/windowContentOverlay"/>  
  12. </LinearLayout>  

screen_title.xml

<LinearLayout android:orientation="vertical" android:fitsSystemWindows="true">  
  1. −  
  2. <FrameLayout android:layout_width="match_parent"   
  3.              android:layout_height="?android:attr/windowTitleSize"   
  4.              style="?android:attr/windowTitleBackgroundStyle">  
  5. <TextView android:id="@android:id/title"   
  6.           style="?android:attr/windowTitleStyle"   
  7.           android:background="@null"   
  8.           android:fadingEdge="horizontal"   
  9.           android:gravity="center_vertical"   
  10.           android:layout_width="match_parent"   
  11.           android:layout_height="match_parent"/>  
  12. </FrameLayout>  
  13. <FrameLayout android:id="@android:id/content"   
  14.              android:layout_width="match_parent"   
  15.              android:layout_height="0dip"   
  16.              android:layout_weight="1"   
  17.              android:foregroundGravity="fill_horizontal|top"   
  18.              android:foreground="?android:attr/windowContentOverlay"/>  
  19. </LinearLayout>  


       既然是自定义标题,那我们就看screen_custom_title.xml,里面有一个title_container和一个content,组合成了标题栏,我们自定义标题所给出的view,都被content作为子view了,影响不了那个title_container和content,所以,任你怎么弄,它该留白的还是留白,你没招。
       看title_container有个style是这样的:

        style="?android:attr/windowTitleBackgroundStyle"
      

         content的foreground是这样的android:foreground="?android:attr/windowContentOverlay"


       我们可以自己写一个style

<resources xmlns:android="http://schemas.android.com/apk/res/android">  
  1.   
  2.   
  3. <style name="CustomWindowTitleBackground">  
  4.        <item name="android:background">#00cc00</item>  
  5. </style>  
  6.   
  7.   
  8. <style name="test" parent="android:Theme">  
  9.      <item name="android:windowTitleSize">50dp</item>  
  10.      <item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item>  
  11. </style>  
  12. </resources>  

加入到AndroidManifest


        <activity android:name=".CustomTitileBarActivity"  
  1.                   android:label="@string/app_name" android:theme="@style/title_bar">  
  2.             <intent-filter>  
  3.                 <action android:name="android.intent.action.MAIN" />  
  4.                 <category android:name="android.intent.category.LAUNCHER" />  
  5.             </intent-filter>  
  6.         </activity>  



Android自定义标题栏控件 标题栏控件是在App开发中使用最为广泛的一类控件,使用频率在第一梯队。Google跟苹果都很重视这样的一个控件,所以Android就有了ActionBar,苹果就有了UINavigationController。那么既然Android官方定义了actionbar,为什么还要自己定义标题栏呢?我觉得原因有很多,其中最主要的原因就是使用不方便,坑多。当然actionbar也有它的好处,那就是功能强大。我写这个控件的目的并不能完全覆盖actionbar的所有功能,只是在这种类似这样界面的标题栏,写代码会很高效。 阅读详情

相关推荐

RANSAC地面点分割:从原理到C++实战优化

本文深入解析RANSAC算法在点云地面分割中的原理与C++实战优化,涵盖动态迭代次数、自适应阈值等关键技巧,通过并行计算和内存访问优化提升性能,适用于激光雷达点云处理。

weixin_29015051的博客 279

Android 标题栏及导航栏设计与实现

ActionBar是Android 5.0以前的顶部标题栏,由于其不够灵活所有被ToolBar取代,所有我们要隐藏ActionBar。后 ,toolBar的事件监听才有作用。

qq_52108058的博客 9132

保姆级教程:用Ansys Workbench找出BGA焊点最容易坏的位置(附热循环+振动分析)

本文提供了一份详细的Ansys Workbench教程,指导如何通过热循环和振动分析找出BGA焊点最容易失效的位置。从模型搭建、材料定义到网格划分和载荷设置,全面解析了BGA焊点可靠性分析的全流程,帮助工程师提前预防焊点开裂问题,提升电子封装设计的可靠性。

weixin_30983965的博客 420

Android TitleBar标题栏

开发过程中会遇见很多app顶部的控制栏,封装一个通用TitleBar attrs.xml &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;resources&gt; &lt;declare-styleable name="TitleBar"&gt; &lt;!--标题--&gt; &a

xiangxiongfly 1734

智能车小白也能懂:手把手教你用LM358和工字电感搭建电磁循迹模块(附PCB设计避坑)

本文详细介绍了如何利用LM358运放和工字电感搭建智能车电磁循迹模块,从电感选型、电路设计到PCB布局和焊接调试,提供全流程实战指南。特别针对新手常见问题,如信号干扰、电路饱和等,给出具体解决方案和参数配置,帮助智能车比赛爱好者快速掌握电磁循迹技术。

weixin_30307921的博客 403

Abaqus 气动软体抓取器:从超弹性材料建模到抓取力仿真全流程解析

本文详细解析了Abaqus在气动软体抓取器仿真中的应用全流程,涵盖超弹性材料建模、接触设置优化到抓取力仿真等关键环节。通过实战案例分享Yeoh模型参数拟合、不可伸展层建模技巧及收敛优化策略,帮助工程师高效解决有限元仿真中的常见问题,提升软体机器人研发效率。

weixin_28689193的博客 238

Android 自定义标题栏控件(一)+安卓开发必备网站

自定义标题栏控件 先安利一个安卓开发必备图标网站:阿里巴巴矢量图库 我们平时所用的控件都是继承自View的,所以有很多控件是我们不想要的,那应该怎样自定义控件呢?      我们利用引用布局的方式来使用自定义的布局: 先新建一个diy.xml: &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:android=...

编程书生的博客 783

5种主流触觉传感器对比:GelSight、DIGIT、Taxim、GelSlim和TACTO怎么选?

本文深度对比了GelSight、DIGIT、Taxim、GelSlim和TACTO五种主流触觉传感器的技术原理与应用场景。针对机器人及VR项目的选型需求,文章从光学与电子传感的技术分野出发,分析了各传感器在分辨率、响应速度、集成难度和成本上的核心差异,并提供了从需求出发的实战选型决策框架,帮助开发者找到最适合的触觉解决方案。

weixin_29268637的博客 699

关于android自定义标题栏出现的问题总结

前两天第一次做一个安卓项目,在自定义标题栏就出现了很多问题。 研究这些问题就研究了好ban'tian

yoqu的专栏 1581

31、多项式的根:求解方法与技术详解

本博客详细探讨了多项式方程根的求解方法与技术,涵盖了从基础理论到高级数值逼近方法的内容。文章介绍了多项式根的存在性条件、解析解法以及常用的数值方法如牛顿法和二分法,并深入分析了割线法、布伦特法等高效数值逼近技术。此外,还讨论了优化策略、根的隔离与验证技术以及实际应用案例,为读者提供了全面的理论知识和实践指导。

w1x2y3的博客 399

Spine骨骼动画查看器 - Skeleton Viewer

骨骼动画是现代游戏和动画制作中常用的技术之一。Spine骨骼动画查看器(Skeleton Viewer)是一个官方提供的工具,用于查看和调试Spine骨骼动画。本文将介绍Skeleton Viewer的功能和使用方法,并提供相应的源代码示例。通过Skeleton Viewer,开发者可以直观地查看和调试Spine骨骼动画,包括骨骼结构、动画播放和事件触发等。这有助于提高骨骼动画的质量和效果,并加速开发过程。以上代码演示了如何使用Skeleton Viewer查看和播放Spine骨骼动画。

HsvvDatabase的博客 3464

android项目中自定义顶部标题栏,Android项目中自定义顶部标题栏

Android项目中自定义顶部标题栏下面给大家详细介绍android中自定义顶部标题栏的思路及实现方式先来图: 思路及实现步骤1.定义标题栏布局2.自定义TitleActivity控制标题栏按钮监听3.在TitleActivity中实现标题栏以下内容切换首先定义标题栏定义控制标题栏按钮和标题栏以下内容的布局注:此处使用 标签引入标题栏,且下方有定义一个空的FrameLayout的布...

weixin_42378094的博客 2102

SKUA-GOCAD入门教程-第二节

软件启动及项目设置

江洋大葱的博客 1148

Android 安卓 自定义标题栏+沉浸式状态栏

Android 安卓 自定义标题栏+沉浸式状态栏由于Android原生的标题栏单调,简单,并不是很好看,自定义个性化的标题栏可以让app更加美观。 Android 4.4以后增加了沉浸式透明状态栏。打开沉浸模式的状态栏和主界面完全融为了一体,在设计上的确有不同的视觉感受。下面就是自定义标题栏+沉浸式状态栏在genymotion模拟器中实现的效果,自定义了标题栏(可添加按钮等),实现了状态栏的沉浸

hifn123p的博客 6948

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Android 自定义标题栏

目录 1.Android 去掉顶部标题栏 2.定义新的标题栏并使用 1.改布局的高度 并设置颜色 2.可视化的方法新建一个ImageButton,一个TextView ,并设置位置大小图标 3.在想引入自定义标题的界面的xml文件里 加入 效果图: 1.Android 去掉顶部标题栏 Android 入门 我是跟着阿发学的,他的教程是两年前的, 今天...

小渣渣的博客 2748

精雕软件(JDpaint) 5.5 绿色版

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

安卓之自定义标题栏

在layout下创建一个cutom_title.xml布局文件,名字可以随便起,在布局文件里添加按钮、标题文字等信息。在AndroidManifest.xml里修改Android:theme的属行为。这里的按键使用的是文字,也可以使用漂亮的图片根据自己的需要调整。android:text="温控器"保存在运行,原有的标题栏就消失了。android:text="返回"android:text="设置"在布局xml中加入红色代码就可以了。

landlde的博客 1898

老版QQ原生表情gif动态

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

Android自定义Activity标题栏

1、当Activity继承Activity时:     隐藏标题栏:         在onCreate方法里添加以下代码: requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, ...

程序员的天堂 2078

Android 创建自定义标题栏

Android 中所有控件都直接或间接继承自 View;所有布局都直接或间接继承自 ViewGroup 。

WriteOnRead 819

【Android】实现自定义标题栏

不知不觉标题自定义标题栏这个功能已经写了有将近半年的时间了,总共花了一个来月的下班时间才将其完成,完全靠自己的开发的确有点难,但,说实在的也不难,当初觉得难是因为自己对自定义的View点击事件一窍不通,翻了许多博客,迟迟未找到处理方法,直到后面脑子换了种思路去思考这个问题,才将其处理掉。从此,我的APP容不下自带的标题栏 自定义标题栏,就要隐藏掉自带的标题栏,隐藏标题栏只需要在AndroidManifest.xml文件的application标签theme的引用样式的父样式更换为有NoActionBar字样

宾有为的博客 4643

Android项目中自定义顶部标题栏

Android项目中自定义顶部标题栏 先来图: 思路及实现步骤 1.定义标题栏布局 2.自定义TitleActivity控制标题栏按钮监听 3.在TitleActivity中实现标题栏以下内容切换

gao_chun 4万+

Android 自定义标题栏(title栏)

近日 需要在android的标题栏上添加按钮,所以对android的标题栏进行了一下简单的研究~ 第一步,向实现自定义标题栏,需要在onCreate方法里这样写 requestWindowFeature(Window.FEATURE_CU

Android 是一种内伤 5万+
上一篇: Android中inflate方法的用法
下一篇: Android Activity界面切换动画
cding1818
博客等级 码龄17年 963粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值