android 关于include标签替换的问题
2019-02-19 本文已影响0人
喵叮当
- 今天在使用include标签时,由于一个布局在两个地方被用到,一个是直接作为一个布局整体引入,另一个是作为一个布局的一部分用include标签引入
- 布局很简单,如下代码所示:
<?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="wrap_content"
android:background="@drawable/live_shape_radius8"
android:orientation="horizontal"
android:layout_marginTop="@dimen/studentres_dimen_space_important2"
android:layout_marginStart="@dimen/studentres_dimen_space_important2"
android:layout_marginEnd="@dimen/studentres_dimen_space_important2"
android:padding="12dp">
// ...
</LinearLayout>
作为整体引入时候,布局就是这样子,然后问题来了,当被其他布局作为一部分用include标签引入时,不需要margin
处理方法很简单,我们只需要在include标签里面写上这一段就可以了
<include
layout="@layout/live_item_live_album_middle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="0dp" />
include标签里的属性会替换掉所引用的布局的根属性,更详细的规则可以去阅读源码布局解析里面对include的处理,在此作一个小记录