Android自定义view----顶部标题栏1
1.效果图
2.思路
自定义标题栏一共有两种思路:
1)将标题栏定义成一个item,然后在使用的地方用标签“include”引入
标题栏item代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:background="#ffffff"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/title_cancel_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="取消"
android:textSize="22sp"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginLeft="8dp"
android:background="@android:color/transparent"
android:textColor="@android:color/holo_red_light"
app:layout_constraintLeft_toLeftOf="parent"
android:layout_marginStart="8dp" />
<TextView
android:id="@+id/title_title_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="标题栏"
android:textSize="30sp"
android:layout_marginRight="8dp"
app:layout_constraintRight_toRightOf="parent"
android:layout_marginLeft="8dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="10dp"
android:textColor="#000000"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp" />
<Button
android:id="@+id/title_ok_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="8dp"
android:text="完成"
android:textSize="22sp"
android:textColor="@android:color/holo_blue_dark"
app:layout_constraintRight_toRightOf="parent"
android:background="@android:color/transparent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp" />
</android.support.constraint.ConstraintLayout>
引用标题栏的布局代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<include layout="@layout/item_view_group"/>
</LinearLayout>
标题栏实现activity代码:
package com.yk.skill.androidskillplatform.selfcreate.toptitlebar;
import android.app.Activity;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import com.yk.skill.androidskillplatform.R;
/**
* Created by Administrator on 2017/10/25.
*/
public class SelfTopTitleBarActivity extends Activity{
Button cancelBtn;
Button okBtn;
TextView title;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.toptitlebar_activity);
cancelBtn = (Button) findViewById(R.id.title_cancel_action);
okBtn = (Button) findViewById(R.id.title_ok_action);
title = (TextView) findViewById(R.id.title_title_tv);
cancelBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
toast("cancel");
}
});
okBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
toast("ok");
}
});
}
public void toast(String text){
Toast.makeText(SelfTopTitleBarActivity.this,text,Toast.LENGTH_SHORT).show();
}
}
2)使用继承view进行自定义view
由于此方法内容较多,所以另外开了一篇