【问题标题】:Avoid using multiple layouts in an item of listview避免在列表视图项中使用多个布局
【发布时间】:2016-12-10 18:01:42
【问题描述】:

我有一个列表视图和 在我的列表视图中,列表视图的每个项目的设计方式是两个项目在左侧垂直排列,两个项目在右侧垂直排列,两个项目在中间垂直排列。现在我为此设计了布局,但我花了三个内部布局来制作它。我可以避免在这种情况下使用多个布局,因为它可能会影响性能吗?请注意,我的第一个线性布局有背景。下面是代码-

<?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>

【问题讨论】:

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


    【解决方案1】:

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

    RelativeLayout 也是一个不错的选择,如果您想让每一行或每一列具有不同的大小(但我认为您不希望这样查看您的代码)。

    【讨论】:

    • 在 TableLayout 中,TableRow 只扩展了 LinearLayout。那么在这里使用 TableLayout 有什么好处呢?我们还将使用四种布局,因为 TableRow 扩展了 LinearLayout..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多