zoukankan      html  css  js  c++  java
  • 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 {
    15     private Button titleBack;
    16     private TextView titleText;
    17 
    18     public TitleLayout(Context context, AttributeSet attrs) {
    19         super(context, attrs);
    20         LayoutInflater.from(context).inflate(R.layout.yingyong_top, this);
    21         titleBack = (Button) findViewById(R.id.title_back);
    22         titleText = (TextView) findViewById(R.id.title_text);
    23 
    24         //设置返回键的点击效果
    25         titleBack.setOnClickListener(new OnClickListener() {
    26             @Override
    27             public void onClick(View v) {
    28                 ((Activity) getContext()).finish();
    29             }
    30         });
    31 
    32     }
    33 
    34     //创建一个方法来改变title中text的内容
    35     public void setTitleText(String text) {
    36         titleText.setText(text);
    37     }
    38 }

      布局文件:

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

      其中,LinearLayout中的android:background是你想要的布局背景,Button中的android:background是返回按钮资源

    在Activity中使用:

      布局文件中添加:

    1 <com.example.utils.TitleLayout
    2         android:id="@+id/activity_register_title"
    3         android:layout_width="match_parent"
    4         android:layout_height="wrap_content">
    5 </com.example.utils.TitleLayout>

      初始化:

     1    private TitleLayout title;
     2 
     3     @Override
     4     protected void onCreate(Bundle savedInstanceState) {
     5         super.onCreate(savedInstanceState);
     6         requestWindowFeature(Window.FEATURE_NO_TITLE);
     7         setContentView(R.layout.****);
     8         title = (TitleLayout) findViewById(R.id.activity_select_register_title);
     9         title.setTitleText("****");
    10         initData();
    11     }

      其中,requestWindowFeature(Window.FEATURE_NO_TITLE)是去除系统原生标题栏;

      setTitleText("****")设置自定义标题栏名称。

    最后:

      展示效果:

      

  • 相关阅读:
    seeting菜单界面形成--优化
    setting菜单界面的形成--未优化
    (转)最强Android模拟器genymotion的安装与配置
    (转)Android SlidingTabLayout定制分割线和指示条颜色
    【前端】CSS入门笔记
    【前端】XHTML入门笔记
    【Java】Java学习笔记
    【英语】20141022 生词
    【学习】Git和Github菜鸟入门
    【英语】20141015 生词
  • 原文地址:https://www.cnblogs.com/fx-blog/p/8310213.html
Copyright © 2011-2022 走看看