在开发Android app中,经常会出现很多个页面都有相同的一部分布局或者控件。
我们当然不必在每个xml文件中写重复的代码,经过上网查资料,大概有两种常用的方法:
xml文件中<include>:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.XX.mediaplayer.AllMusicaActivity">
<include layout="@layout/activity_album"/>
</LinearLayout>
以上代码中<include layout = @layout/XXX>就是包含其他layout文件布局,这是在拥有相同布局的情况下。
但如果该相同的部分包含控件甚至监听事件时,在xml文件中添加<include>就不能解决问题了。这时候可以自定义一个布局,让他继承Activity。然后拥有该布局的Activity都来继承自定义的Activity就可以达到目的。相同布局的事件监听等动作都可以在自定义Activity中写出,其控件初始化和监听的写法和平常的Activity一样。由于我的代码有其他东西,就不贴上来了。来个效果图:
不管是哪个页面,在下面都会有一个微型播放器