简单的自定义标题栏

android自定义控件向来都是开发者最头疼的,但是我们要有那种迎难而上的精神。

MainActivity

package com.example.customview;import android.support.v7.app.ActionBar;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Toast;/*    android自定义标题组合控件    步骤:    1.首先写出需要功能的布局xml,分析布局的父控件是谁?    例如水平布局 父控件应该是linearlayout较为合适    2.创建自定义控件类并继承xml父控件    3.在构造方法中使用layoutInflat动态加载布局 */public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //去除自带标题栏        ActionBar actionBar = getSupportActionBar();        if (actionBar != null) {            actionBar.hide();        }    }}

TitleLayout.class

package com.example.customview.custom;import android.app.Activity;import android.content.Context;import android.util.AttributeSet;import android.view.LayoutInflater;import android.view.View;import android.widget.Button;import android.widget.LinearLayout;import android.widget.TextView;import android.widget.Toast;import com.example.customview.R;/** * 自定义标题栏 并赋有点击事件 */public class TitleLayout extends LinearLayout implements View.OnClickListener {    private Button btback, btopen;    private TextView tvtitle;    public TitleLayout(Context context, AttributeSet attrs) {        super(context, attrs);        //动态加载标题栏布局        LayoutInflater.from(context).inflate(R.layout.custom_layout, this);        initView();    }    private void initView() {//初始化控件        btback = (Button) findViewById(R.id.btback);        btback.setOnClickListener(this);        btopen = (Button) findViewById(R.id.btopen);        btopen.setOnClickListener(this);        tvtitle = (TextView) findViewById(R.id.tvtitle);        tvtitle.setOnClickListener(this);    }    @Override    public void onClick(View view) {//监听点击事件        switch (view.getId()) {            case R.id.btback:                ((Activity) getContext()).finish();                Toast.makeText(getContext(), "销毁当前Activity", Toast.LENGTH_SHORT).show();                break;            case R.id.btopen:                Toast.makeText(getContext(), "展开", Toast.LENGTH_SHORT).show();                break;            case R.id.tvtitle:                Toast.makeText(getContext(), "标题", Toast.LENGTH_SHORT).show();                break;        }    }}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.example.customview.MainActivity">    <include layout="@layout/custom_layout" />    <com.example.customview.custom.TitleLayout        android:layout_width="match_parent"        android:layout_height="wrap_content" />LinearLayout>

custom_layout.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.example.customview.MainActivity">    <include layout="@layout/custom_layout" />    <com.example.customview.custom.TitleLayout        android:layout_width="match_parent"        android:layout_height="wrap_content" />LinearLayout>

粘贴以上代码就可以运行了。

更多相关文章

  1. 解决TabLayout+viewpager 滑动切换时 布局文件不是从头显示
  2. Android调用自定义Dialog中的控件
  3. 【原创】android webview 加载网络视频
  4. android 动态设置控件大小
  5. Android文字跑马灯控件(文本自动水平滚动)
  6. [置顶] android Listview分批加载+自动加载(附源码下载)
  7. lyricView--歌词显示控件

随机推荐

  1. 简单的 Android(安卓)拍照并显示以及获取
  2. android 实现定时器
  3. 移动网站开发中常用的10段JavaScript代码
  4. Ubuntu搭建Eclipse+JDK+SDK的Android
  5. android 绘制折线图(AChartEngine)Linechar
  6. android用户界面之按钮(Button)教程实例
  7. OpenCV 连接 Android(安卓)IP摄像头
  8. 【EditText】Android(安卓)中设置 EditTe
  9. android.hardware.Camera翻译
  10. Android已有项目接入Flutter及互相通信