文档章节

自定义Android标题栏TitleBar布局

程序袁_绪龙
 程序袁_绪龙
发布于 2014/10/08 17:30
字数 573
阅读 6222
收藏 5
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); setContentView(R.layout.main); //软件activity的布局 getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar); //titlebar为自己标题栏的布局

Layout下建立titlebar.xml:

复制代码
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:orientation="horizontal" > <Button android:id="@+id/back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/back" android:textSize="18sp" android:textColor="#FF0000FF" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/share" android:textSize="18sp" android:textColor="#FFFFFF00" /> </LinearLayout>
复制代码
这样虽然可以在一定程度上定制标题栏, 不过, 这里无法改变标题栏的高度和背景(背景设置之后会在两端有两个
非常难看的边框). 据说, 原因是android 固有的.
这里有修改方法:
  原理是这样的. 直接像上述代码那样添加title仅仅是把一个子界面添加到原有的title上的, 并没有改变原来的属性,
比如 标题栏大小, 标题栏背景. 这些需要在theme 主题里面定义.
  因此先定义一个style, 若修改背景请修改android:windowTitleBackgroundStyle
  若修改标题栏高度,请修改android:windowTitleSize
复制代码
例子: <?xml version="1.0" encoding="utf-8"?> <resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="CustomWindowTitleBackground"> <item name="android:background">#565656</item> </style> <style name="test" parent="android:Theme"> <item name="android:windowTitleSize">50dp</item> <item name="android:windowTitleBackgroundStyle">@style/CustomWindowTitleBackground</item> </style> </resources>
复制代码
在程序的android manifest.xml中对应:
  activity中添加属性 android:theme = "@style/test" 就可以了
复制代码
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.guardian" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name" > <activity android:name=".Guardian" android:label="@string/app_name" android:theme = "@style/test" //就在这里 > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <uses-sdk android:minSdkVersion="4" /> </manifest>
复制代码
之后借助于设置自定义的标题栏xml文件,就可以自定义标题栏布局了

© 著作权归作者所有

共有 人打赏支持
程序袁_绪龙
粉丝 98
博文 242
码字总数 66750
作品 0
普陀
程序员
android如何阻止app_name在标题栏中闪现

常见自定义titlebar的方法是在values文件夹中新建一个我们自己的titlebar主题,例如:  然后在manifest文件中为activity添加自定义主题,

华宰
2011/09/06
2.5K
0
Window attributes属性详解

以下属性以Dialog为例来讲解: <item name="windowBackground"> 窗体的背景 </item> <item name="windowFrame">Dialog 是否有边框 </item> <item name="windowNoTitle">窗体是否有标题</ite......

TedYin
2013/11/22
0
0
Android 透明(沉浸式)状态栏设计

一.透明(沉浸式)状态栏设计 通过第三方代码实现透明状态栏的主要代码如下。 用法如下 注意:状态栏透明可能导致布局向上便宜,所以需要设置根布局的android:fitsSystemWindows="true" 二....

IamOkay
2015/01/20
0
0
糊里糊涂学Android(2)——Activity隐藏标题及全屏

在大部分情况下,我们开发或使用的App都不需要Activity中原本的标题,都有自己独特或个性的标题栏,甚至有些App是全屏的。下面就来探究一下都有哪几种方法可以实现隐藏标题或全屏。 1.修改A...

笑缘心归
2014/03/17
0
0
Android自定义View的实现(四)

如果说要按类型来划分的话,自定义View的实现方式大概可以分为三种,自绘控件、组合控件、以及继承控件。那么下面我们就来依次学习一下,每种方式分别是如何自定义View的。 一、自绘控件 自绘...

JayPark不作死
2014/07/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

域名相关

... 域名注册商 万网 米店 GoDaddy 泡米网 - .io注册/.io续费只用198 name.com internet.ee registrar.mw ... 参考文档 搞清楚这些,你就是域名高手——域名百问大合集 5种免费一级域名的申请...

taadis
8分钟前
0
0
ubuntu下vim的安装操作

sudo apt-get install vim 查看vim是否安装成功 vim --version

鹏灬
12分钟前
0
0
Postman插件的安装教程

一、背景 在公司做一个查询异步化改造时,需要在本地调试,但是本地调试该如何避开请求参数的校验(比如请求头的referer、cookie等),解决办法无非就是两种: 1. 暴力把所有进行参数校验的代...

edwardGe
20分钟前
0
0
JDK8 特性说明

https://blog.csdn.net/piglite/article/details/53823584 https://blog.csdn.net/beirdu/article/details/78585945 https://www.baeldung.com/java-lambda-exceptions......

王桥修道院副院长
22分钟前
1
0
JavaScript(六):数据类型

在计算机科学中, data (数据)大于一切,因为它对于计算机的意义重大。JavaScript提供七种不同的data types(数据类型),它们是: undefined(未定义), null(空), boolean(布尔型), strin...

Agnes2017
23分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部