避免在listview项中使用多个布局

时间:2016-08-04 14:32:15

标签: android android-layout listview optimization android-linearlayout

我有一个listview和  在我的列表视图中,listview的每个项目都是这样设计的,即两个项目垂直排列在左边,两个项目垂直排列在右边,两个项目垂直排列在中间。现在我为此设计了布局,但它花了我我可以避免在这种情况下使用多个布局,因为它可能会影响性能?请注意我的第一个linearlayout有background.Below是代码 -

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:orientation="vertical"
    android:paddingBottom="@dimen/dp16"
    android:paddingLeft="@dimen/dp16"
    android:paddingRight="@dimen/dp16"
    android:paddingTop="@dimen/dp16">
    <LinearLayout
        android:id="@+id/item1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/background_date"
        android:orientation="vertical">
        <TextView
            android:id="@+id/mon"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/colorPrimary"
            android:gravity="center"
            android:paddingBottom="@dimen/dp5"
            android:paddingLeft="@dimen/dp15"
            android:paddingRight="@dimen/dp15"
            android:paddingTop="@dimen/dp5"

            android:textColor="@color/white"
            android:textSize="@dimen/sp16" />
        <TextView
            android:id="@+id/dat"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:paddingBottom="@dimen/dp5"
            android:paddingLeft="@dimen/dp15"
            android:paddingRight="@dimen/dp15"
            android:paddingTop="@dimen/dp5"

            android:textColor="@color/greytext"
            android:textSize="@dimen/sp16" />
    </LinearLayout>
    <LinearLayout
        android:id="@+id/item2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_marginLeft="@dimen/dp12"
        android:layout_toRightOf="@+id/item1"
        android:orientation="vertical">
        <TextView
            android:id="@+id/Id"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingTop="@dimen/dp5"

            android:textColor="@color/greytext"
            android:textSize="@dimen/sp16" />
        <TextView
            android:id="@+id/time"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:paddingTop="@dimen/dp2"

            android:textColor="@color/greytext"
            android:textSize="@dimen/sp16" />
    </LinearLayout>
    <LinearLayout
        android:id="@+id/item3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:orientation="vertical">
        <TextView
            android:id="@+id/eyn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:paddingTop="@dimen/dp5"

            android:textColor="@color/greytext"
            android:textSize="@dimen/sp16" />
        <TextView
            android:id="@+id/tus"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:paddingTop="@dimen/dp2"
            android:singleLine="true"

            android:textColor="@color/greytext"
            android:textSize="@dimen/sp16" />
    </LinearLayout>
</RelativeLayout>

1 个答案:

答案 0 :(得分:1)

如果您使用TableLayout,那么您所描述的内容会更加平坦。你可以找到一个关于如何使用一个here的体面教程。这将允许您在一个视图组中完成所有操作,而不是您当前使用的四个视图组。

如果你想让每一行或每列都有不同的大小,那么RelativeLayout也是一个不错的选择(但我不认为你想看看你的代码)。