自己设计了一个简单的app,发现项目自带的标题栏太碍眼,选择 Theme.NoTitleBar 关闭标题栏显示是一种方法。不过,自定义一个带有返回和菜单选择的标题栏是更友好的选择。
1、设计标题栏的样式
在 value 下新建 styles.xml 文件,设计标题栏的背景色及大小
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="TitleBarBackground">
<item name="android:background">@color/blue</item>
</style>
<style name="MyCustomTheme" parent="android:Theme">
<item name="android:windowNoTitle">true</item>
<item name="android:windowTitleBackgroundStyle">@style/TitleBarBackground</item>
<item name="android:windowTitleSize">50dp</item>
</style>
</resources>
2、设计标题栏的布局
在 layout 下新建 custom_title.xml 文件,设计在标题栏左右两边分别显示返回按钮和菜单按钮
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/screen"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<Button
android:id="@+id/head_TitleAddBtn"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/iconfont_add"
android:gravity="center"
android:layout_marginTop="0dp"
android:layout_alignParentRight="true"
/>
<Button
android:id="@+id/head_TitleBackBtn"
android:layout_width="50dp"
android:layout_height="50dp"
android:background="@drawable/iconfont_back"
android:gravity="center"
android:layout_marginTop="0dp"
android:layout_alignParentLeft="true"
/>
</RelativeLayout> 按钮图标可以在
阿里巴巴矢量图标库找到。
3、应用自定义的标题栏
在 AndroidManifest.xml 中添加语句 android:theme
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/MyCustomTheme">
4、添加自定义的标题栏到目标布局中
使用 include 标记将 自定义的标题栏layout 放入其他的layout文件,如在 main.xml 中加入
<include
android:id="@+id/titlebar1"
layout="@layout/custom_title"/>
5、监听按钮
在main.activity 中 添加代码
titleBackButton = (Button) findViewById(R.id.head_TitleBackBtn);
titleAddButton = (Button) findViewById(R.id.head_TitleAddBtn);
titleBackButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
doBack();
}
});
titleAddButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
doAdd();
}
});
6、效果
本文详细介绍了如何在Android应用中自定义标题栏,包括设计样式、布局,以及添加返回和菜单按钮,并通过代码示例展示了如何在Activity中监听这些按钮事件。
948

被折叠的 条评论
为什么被折叠?



