下面制作一个类似iPhone的标题栏,对于引用布局来说,最大的优势在于可以减少代码的重复,重复的布局内容只需要在新建的布局中建立好,然后需要使用时,在引用的XML文件使用include将布局引入即可
新建一个布局 title.xml,代码如下所示:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<Button
android:id="@+id/btn_left"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Back"/>
<TextView
android:id="@+id/textview"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2"
android:text="Title Text"
android:gravity="center"
android:textSize="24sp"/>
<Button
android:id="@+id/btn_right"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Enter"/>
</LinearLayout>
现在标题栏布局已经编写完成了,剩下的就是如何在程序中使用这个标题栏了,修改 activity_main.xml中的代码,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<include layout="@layout/title"/>
</RelativeLayout>
没错!我们只需要通过一行 include语句将标题栏布局引入进来就可以了。
最后别忘了在 MainActivity中将系统自带的标题栏隐藏掉,代码如下所示:
if (getSupportActionBar() != null){
getSupportActionBar().hide();
}