v7 包下的 LinearLayoutCompat

在平时的开发当中,我们经常会有这样的需求那就是在布局当中使用分割线区分每个Item布局,如下代码:
这里写图片描述
效果如图 1-1

<?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="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center"
        android:text="Item1" />

    <View
        android:layout_width="match_parent"
        android:layout_height="0.5dp"
        android:background="@color/colorAccent" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center"
        android:text="Item2" />

    <View
        android:layout_width="match_parent"
        android:layout_height="0.5dp"
        android:background="@color/colorAccent" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center"
        android:text="Item3" />

    <View
        android:layout_width="match_parent"
        android:layout_height="0.5dp"
        android:background="@color/colorAccent" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center"
        android:text="Item4" />
</LinearLayout>

可是在了解和熟知v7 报下内容之后你会发现Google 提供了一个 LinearLayoutCompat Item 布局分割线的实现。

一、LinearLayoutCompat 的使用

我们知道 support-v7 是一个兼容包,因为LinearLayoutCompat 位于 support-v7 下,那么它包括了LinearLayout 的属性
并新增了几个属性:

 app:divider="@drawable/bootom_line"
 app:dividerPadding="10dp" //线的间距
 app:showDividers="middle|end"
标签 属性内容
app:divider 设置分割线的样式支持自定义 drawable
app:dividerPadding 设置分割线两端的距离
app:showDividers 设置分割线显示的位置 [beginning middle end none]

了解Google 为我们提供的这些属性之后,我们可以修改我们的布局文件并展示如图 1-1 的效果

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.LinearLayoutCompat xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    app:divider="@drawable/bootom_line"
    app:dividerPadding="10dp"
    app:showDividers="middle|end">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center"
        android:text="Hello World!" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center"
        android:text="Hello World!" />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center"
        android:text="Hello World!" />

</android.support.v7.widget.LinearLayoutCompat>

这里写图片描述

是不是很简单,这样的实现同样还减少了View 的绘制。那么Google在 support.v7当中提供了 LinearLayoutCompat 这样的一个控件,那么它的具体实现方式是怎样的呢。

猜你喜欢

转载自blog.csdn.net/wlytctw/article/details/80447521
今日推荐