使用重量自动调整和调整宽度项目

时间:2017-10-27 14:40:53

标签: android android-layout

问题:

我必须显示多行。 每行都有一个内部重量:描述具有特定的权重,价格等等。

在下面的图片中,您可以看到两种截图。第一行完美地展示了每一行。

第二个,一些价格不合适。

图片1:

Screenshot 1

图片2:

Screenshot 2

这是我的行:

<?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:layout_marginBottom="8dp"
    android:background="@color/blanco"
    android:orientation="horizontal"
    android:paddingBottom="8dp"
    android:paddingTop="8dp"
    android:weightSum="1">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="8dp"
        android:layout_weight="0.7"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="left"

            android:gravity="left|center_vertical"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/txtDescription"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_gravity="center_horizontal"
                android:fontFamily="sans-serif-light"
                android:gravity="center_vertical"
                android:textColor="@color/blue"
                android:textSize="16sp"
                android:textStyle="bold" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="left"

            android:gravity="left|center_vertical"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/txtDate"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_gravity="center_horizontal"
                android:fontFamily="sans-serif-light"
                android:gravity="center_vertical"
                android:paddingRight="15dp"
                android:textColor="@color/blue"
                android:textSize="16sp" />

        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_gravity="left|center_vertical"
        android:layout_weight="0.3"
        android:gravity="right|center_vertical"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/img"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_gravity="center_vertical"
            android:gravity="center_vertical|right"
            android:maxHeight="24dp"
            android:maxWidth="24dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right|center_vertical"
            android:fontFamily="sans-serif-light"
            android:gravity="center_vertical|right"
            android:text="$"
            android:textColor="@color/blue"
            android:textSize="14sp" />

        <TextView
            android:id="@+id/txtPrice"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="right"
            android:fontFamily="sans-serif-light"
            android:gravity="center_vertical|right"
            android:textColor="@color/blue"
            android:textSize="16sp"
            android:textStyle="bold" />
    </LinearLayout>
</LinearLayout>

我需要什么:

有没有可能自动调整价格?

  • 可能会改变文字的大小。
  • 可自动改变重量。

¿解决此类问题的最佳实践是什么?改变我真的不喜欢的尺寸,因为一些尺寸的文字和其他尺寸的文字

1 个答案:

答案 0 :(得分:1)

我看到第一个Linear用相同的数据修复而第二个是问题,你使用权重的方式有点不对,你需要将第二个线性的宽度设置为{{ 1}}没有重量并将第一个线性的宽度设置为wrap_content且权重等于1,因此您的布局将采用第二个线性的宽度,其余的将是第一个线性的标记。