(之前在这个坑待太久,所以在此总结分享。)
一、标题栏简介
自定义的title控件是UI常用的一个设计手法,最简单的例子如图(找了个丑一点的)
二、使用过程
1.(注意:那个标题栏的布局文件和那个所在的activity的布局文件是不同的!!!)先建一个你想要的标题栏的布局文件,弄成你想要的标题的布局代码,只是上面的标题栏,所以属性、大小要注意一下
2.你需要一个自定义的主题,在styles那里建立建立一个你想要的apptheme
3.记得在对应的activity里面注册你的主题(styles)最好使用默认主题,不然容易出一堆error
4.在对应的activity的java文件里面码上引用的代码
三、详细流程
1.标题栏布局文件tips_title,这个只是标题栏的title布局,不是activity的布局,activity的布局要另外写
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="温馨提示" android:textSize="30sp" android:textAlignment="center" android:id="@+id/tips" /> <TextView android:layout_width="100dp" android:layout_height="40dp" android:id="@+id/header_text" android:layout_toRightOf="@+id/tips" /> <Button android:id="@+id/feedback" android:layout_width="wrap_content" android:layout_height="50dp" android:text="有错误?" android:background="#6495ED" android:textSize="25sp" android:layout_toRightOf="@id/header_text" /> </LinearLayout> |
2.在资源文件的styles里面声明你要的theme
如:这个基本是默认的主题了,颜色,字体可以改,但是怕出error就别改其他的太多了
1 2 3 4 5 6 7 |
<style name="WindowTitleBackground" > <item name="android:background">@color/blue</item> </style> <style name="MyTheme" parent="android:Theme"> <item name="android:windowTitleSize">60dp</item> <item name="android:windowTitleBackgroundStyle">@style/WindowTitleBackground</item> </style> |
3.在注册文件manifests那里的对应的activity那里声明你的主题
如: 最好是使用android:theme=”@style/” 这种格式,同时还要删除ide默认生成的主题apptheme之类的,不然还是报错。
1 |
<activity android:name=".TIPS" android:theme="@style/MyTheme" /> |
4.最后在相应的activity的java文件那里声明引用(!!!而且要注意,使用这主题的activity是继承Activity,不是继承AppCompat!!!)
如:
1 2 3 |
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); //先声明这个activity会有一个标题栏,并且利用这个方法 setContentView(R.layout.tips);<span style="white-space:pre"> //声明改activity的布局文件 getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.tips_title); //声明引用我们所做的title布局文件 |
猴,到了这里就可以获得我们想要的自定义标题栏啦!!!
图在上面,有点丑 别介意。
ok,该注意的、易出错的都尽量写详细了。
码字很辛苦,转载请注明来自JackFrost的《Android篇-新手笔记之安卓自定义title标题栏使用》
Saved as a favorite, I really like your blog!
My pleasure! I will try my best to share more !