简单的自定义标题栏

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. Picasso picasso-强大的Android图片下载缓存库
  2. Android显示GIF动画的几种方法
  3. android EditText控件
  4. Android(安卓)中沉浸式状态栏实现
  5. Android文字跑马灯控件(文本自动水平滚动)
  6. android 动态设置控件大小
  7. Android之键盘点击事件
  8. 【原创】android webview 加载网络视频
  9. android onFling 事件没有用

随机推荐

  1. Android输入框实时模糊搜索效果的示例代
  2. android提供的TextUtils类
  3. Android实现图片左右滑动效果
  4. Android软件中嵌入地图之三:Google地图
  5. android资源别名
  6. 第五章(4)Libgdx应用框架之日志记录
  7. Android麦克风录音带音量大小动态显示的
  8. 细说dex2oat(3)
  9. Activiy或者Fragment 销毁时,Dialog 的正
  10. UI控件--自定义SeekBar样式