android UI优化 - 标签减少重复布局代码

原文链接

更多教程

你将学到

1.<include>标签的用法
2.<include>标签的使用例子
3.<include>标签的使用注意

<include>标签简介

你一定经常遇到相似度很高的UI需求:比如同一种标题栏、同一个样式的弹窗、按钮…等等。
每次都重复的写一样的布局代码么?
答案肯定是:NO !!!
提高布局的复用性,可以使用<include>标签

使用<include>标签的例子

创建重用的布局

将你想重用的布局代码封装到一个文件中,这里给出一个例子:

titlebar.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width=”match_parent”
    android:layout_height="wrap_content"    // 注意点 1 将在下面讲解
    android:background="@color/titlebar_bg">

    <ImageView android:layout_width="wrap_content"
               android:layout_height="wrap_content"
               android:src="@drawable/gafricalogo" />
</FrameLayout>

这里的根结点FrameLayout就是你想添加入的Layout类型

使用<include>引用

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/app_bg"
    android:gravity="center_horizontal">

    <include layout="@layout/titlebar"/>   // 注意点 2 将在下面讲解

    <TextView android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:text="@string/hello"
              android:padding="10dp" />

    ...

</LinearLayout>

引入的时候,你是可以重新覆盖源文件的一些android:layout_*属性,但是必须将android:layout_height 和 android:layout_width同时覆盖才会有效。

注意点

上文我们有两个预留的注意点,假如在注意点1处给FrameLayout设置了id,也在注意点2处给include设置了id,那么请务必保持两个id相同,否则在你findViewById的时候可能会发生空指针找不到布局文件,原因是布局的id被覆盖掉了。解决办法是:要么两个id相同,要么只设置其中一个有id。

原文链接

更多教程

    原文作者:TryEnough
    原文地址: https://www.jianshu.com/p/a68b2a83fa28
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞