自定义 android 标题栏

本文详细介绍了如何在Android应用中自定义标题栏,包括设计样式、布局,以及添加返回和菜单按钮,并通过代码示例展示了如何在Activity中监听这些按钮事件。

自己设计了一个简单的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、效果



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值