目录
1. 什么是include?
include就是在一个布局中,导入另一个布局
2. 为什么使用include?
相同的页面只需要写一次,在需要的地方include即可,提高了共通布局的复用性。
3. 怎么使用include?
3.1 步骤
- 定义共通布局
include共通布局
3.2 Sample
3.2.1 定义共通布局:include_layout.xml
<?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="wrap_content"
android:id="@+id/include_lay"
android:clickable="true"
android:focusable="true"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="这是文字"
android:padding="16dp"
android:background="@color/colorAccent"
android:clickable="false"
android:focusable="false"
android:layout_marginBottom="10dp"
/>
</LinearLayout>
3.2.2 在想要引入的布局中引入activity_include.xml
<?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="wrap_content"
>
<include layout="@layout/include_layout"/>
</LinearLayout>
3.2.3 运行效果:

4 include之后,布局变成了什么样?
-
include布局伪代码
<LinearLayout> <include layout="@layout/include_layout"/> </LinearLayout> -
运行时,布局实际结构
<LinearLayout> <LinearLayout id="include_lay"> <TextView/> </LinearLayout> </LinearLayout>
4.1 当我们include两个同样的布局时
如果想要获取id为include_lay的控件实际上为第一个id为include_lay的控件,
-
include的布局伪代码:
<LinearLayout> <include layout="@layout/include_layout"/> <include layout="@layout/include_layout"/> </LinearLayout> -
运行时布局实际结构
<LinearLayout> <LinearLayout id="include_lay"> <TextView/> </LinearLayout> <LinearLayout id="include_lay"> <TextView/> </LinearLayout> </LinearLayout>看图说话:

此时如果,通过findViewById(R.id.include_lay)获取控件并设置点击事件,则第一个点击时响应,第二个不响应
4.2 当include两个相同的布局时,如何区别?
可以在include时指定一个新的id,用来区别。
4.2.1 include之后,使用新的id区分
<LinearLayout>
<include layout="@layout/include_layout"
android:id="@+id/include_lay_1"/>
<include layout="@layout/include_layout"
android:id="@+id/include_lay_2"/>
</LinearLayout>
4.2.2 这时通过include时指定的id来获取View,就是对应的LinearLayout
LinearLayout include1 = findViewById(R.id.include_lay_1);
LinearLayout include2 = findViewById(R.id.include_lay_2);
4.2.3 此时运行时布局实际结构?
<LinearLayout>
<LinearLayout id="include_lay_1">
<TextView />
</LinearLayout>
<LinearLayout id="include_lay_2">
<TextView />
</LinearLayout>
</LinearLayout>
看图说话:

相当于将原来的指定的id冲掉,又指定了新的id
推荐视频教程:
广告:
我使用的装备备:程序员必备 | 不伤关节 | 手感好 | 静电容 | Plum键盘|Niz键盘 戳我

本文详细介绍了Android开发中使用include的方法,解释了include的功能及其在提高布局复用性方面的作用,并给出了具体的实现步骤与示例。

548

被折叠的 条评论
为什么被折叠?



