Android TitleLayout

TitleLayout

示例(Kotlin)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
* 第一行代码第三版
*
* 统一的标题栏
*/
class TitleLayout(context: Context,attrs: AttributeSet) : LinearLayout(context,attrs){

init {
// 构建 LayoutInflater 对象,调用 inflate() 动态加载布局
// 参数 this 是指给加载好的布局再添加一个父布局,这里想要指定为 TitleLayout,于是直接传入 this。
LayoutInflater.from(context).inflate(R.layout.title,this)

btnTitleBack.setOnClickListener{
// TitleLayout 接收的 context 参数实际上是一个 Activity 的实例,要先将它转换成 Activity 类型。
val activity = context as Activity
activity.finish()
}

btnTitleEdit.setOnClickListener{
Toast.makeText(context,"Toast",Toast.LENGTH_SHORT).show()
}
}
}
title.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="wrap_content">

<Button
android:id="@+id/btnTitleBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Back" />

<TextView
android:id="@+id/tvTitleText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Title"
android:gravity="center"/>

<Button
android:id="@+id/btnTitleEdit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Edit" />
</LinearLayout>
activity_main.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?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"
tools:context=".activity.MainActivity"
android:orientation="vertical">

<!-- 使用自定义控件 -->
<com.example.myapplication.view.TitleLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"/>

</LinearLayout>