Android 自定义标题栏

莫问天涯路几重,轻衫侧帽且从容。这篇文章主要讲述Android 自定义标题栏相关的知识,希望能为你提供帮助。
前言:自定义标题栏应该是android标配了,也是我从网上抠下来的,做一下记录,感谢各位前辈栽树。
自定义标题栏:首先:

1 package com.example.utils; 2 3 import android.app.Activity; 4 import android.content.Context; 5 import android.util.AttributeSet; 6 import android.view.LayoutInflater; 7 import android.view.View; 8 import android.widget.Button; 9 import android.widget.LinearLayout; 10 import android.widget.TextView; 11 12 import com.example.demo02.R; 13 14 public class TitleLayout extends LinearLayout { 15private Button titleBack; 16private TextView titleText; 17 18public TitleLayout(Context context, AttributeSet attrs) { 19super(context, attrs); 20LayoutInflater.from(context).inflate(R.layout.yingyong_top, this); 21titleBack = (Button) findViewById(R.id.title_back); 22titleText = (TextView) findViewById(R.id.title_text); 23 24//设置返回键的点击效果 25titleBack.setOnClickListener(new OnClickListener() { 26@Override 27public void onClick(View v) { 28((Activity) getContext()).finish(); 29} 30}); 31 32} 33 34//创建一个方法来改变title中text的内容 35public void setTitleText(String text) { 36titleText.setText(text); 37} 38 }

布局文件:
1 < ?xml version="1.0" encoding="utf-8"?> 2 < LinearLayout 3xmlns:android="http://schemas.android.com/apk/res/android" 4android:layout_width="match_parent" 5android:orientation="horizontal" 6android:layout_height="45dp" 7android:background="@drawable/title_bar"> 8 9< Button 10android:id="@+id/title_back" 11android:layout_width="40dp" 12android:layout_height="40dp" 13android:layout_gravity="center_vertical" 14android:background="@drawable/button_back"/> 15< TextView 16android:id="@+id/title_text" 17android:layout_width="wrap_content" 18android:layout_height="wrap_content" 19android:text="This is a Title" 20android:padding="12dp" 21android:layout_gravity="center_vertical" 22android:textSize="20sp" 23android:textStyle="bold" 24android:textColor="#fff"/> 25 < /LinearLayout>

其中,LinearLayout中的android:background是你想要的布局背景,Button中的android:background是返回按钮资源
在Activity中使用:布局文件中添加:
1 < com.example.utils.TitleLayout 2android:id="@+id/activity_register_title" 3android:layout_width="match_parent" 4android:layout_height="wrap_content"> 5 < /com.example.utils.TitleLayout>

【Android 自定义标题栏】初始化:
1private TitleLayout title; 2 3@Override 4protected void onCreate(Bundle savedInstanceState) { 5super.onCreate(savedInstanceState); 6 requestWindowFeature(Window.FEATURE_NO_TITLE); 7setContentView(R.layout.****); 8 title = (TitleLayout) findViewById(R.id.activity_select_register_title); 9 title.setTitleText("****"); 10initData(); 11}

其中,requestWindowFeature(Window.FEATURE_NO_TITLE)是去除系统原生标题栏;
setTitleText("****")设置自定义标题栏名称。
最后:展示效果:
Android 自定义标题栏

文章图片

 

    推荐阅读