Andorid :自定义Title控件

0.Demo结构

Andorid :自定义Title控件_第1张图片
snipaste20170215_003003.png

1.新建自定义Title的布局文件

title布局文件.png

代码:



    
    

2.新建TitleLayout类 继承于LinearLayout

Andorid :自定义Title控件_第2张图片
1.新建TitleLayout类.png

代码:

package com.example.zhao.customview;

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.Toast;

/*第二步创建TitleLayout类 */
public class TitleLayout extends LinearLayout {
    public TitleLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
        //布局填充器--从 传入的上下文参数--进行填充
        LayoutInflater.from(context).inflate(R.layout.title,this);

        Button titleBack=(Button)findViewById(R.id.title_back);
        Button titleEdit=(Button)findViewById(R.id.title_edit);
        titleBack.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                ((Activity)getContext()).finish();
            }
        });
        titleEdit.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(getContext(),"Edit",Toast.LENGTH_LONG).show();
            }
        });
    }
}

3.应用定义好的Title控件

Andorid :自定义Title控件_第3张图片
主布局中应用组件.png

activity_main.xml代码:








MainActivity.java代码:

package com.example.zhao.customview;

import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //应用前要隐藏原有的Title
        ActionBar actionBar=getSupportActionBar();
        if(actionBar!=null){
            actionBar.hide();
        }
    }
}

4.效果图

Andorid :自定义Title控件_第4张图片
效果图.png

你可能感兴趣的:(Andorid :自定义Title控件)