Android:在两个视图之间设置minDinstance,同时在它们之间有一个视图

时间:2018-03-22 16:37:24

标签: android android-layout

我的应用程序中有这个布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/item_list_item"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="5dp">

    <ImageButton
        android:id="@+id/basket_item_list_delete"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_marginLeft="5dp"
        android:layout_marginStart="5dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:background="@android:color/transparent"
        android:minWidth="35dp"
        android:minHeight="35dp"
        app:srcCompat="@drawable/ic_garbage"/>

    <LinearLayout
        android:id="@+id/basket_item_list_description"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/basket_item_list_delete"
        android:layout_toEndOf="@+id/basket_item_list_delete"
        android:layout_toLeftOf="@+id/basket_item_list_increment"
        android:layout_toStartOf="@+id/basket_item_list_increment"
        android:layout_centerVertical="true"
        android:orientation="vertical">

        <TextView
            android:id="@+id/basket_item_list_itemname"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_marginLeft="10dp"
            android:layout_marginStart="10dp"
            android:text="ItemName"
            android:textColor="@android:color/black"
            android:textSize="18sp" />

        <TextView
            android:id="@+id/basket_item_list_options"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:layout_marginStart="10dp"
            android:text="Options"/>

    </LinearLayout>

    <Button
        android:id="@+id/basket_item_list_increment"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@+id/basket_item_list_count"
        android:layout_toStartOf="@+id/basket_item_list_count"
        android:minWidth="35dp"
        android:minHeight="35dp"
        android:text="+"
        android:textSize="30sp"
        android:textColor="@color/generalText"
        android:background="@android:color/transparent"/>

    <TextView
        android:id="@+id/basket_item_list_count"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="false"
        android:layout_alignParentRight="false"
        android:layout_centerVertical="true"
        android:layout_marginEnd="2dp"
        android:layout_marginRight="2dp"
        android:layout_toLeftOf="@+id/basket_item_list_decrement"
        android:layout_toStartOf="@+id/basket_item_list_decrement"
        android:gravity="center_vertical"
        android:text="nx"
        android:textColor="@android:color/black"
        android:textSize="14sp"
        />

    <Button
        android:id="@+id/basket_item_list_decrement"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@+id/basket_item_list_price"
        android:layout_toStartOf="@+id/basket_item_list_price"
        android:minWidth="35dp"
        android:minHeight="35dp"
        android:text="–"
        android:textSize="30sp"
        android:textColor="@color/generalText"
        android:background="@android:color/transparent" />

    <TextView
        android:id="@+id/basket_item_list_price"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        android:layout_marginEnd="10dp"
        android:layout_marginRight="10dp"
        android:gravity="center_vertical"
        android:text="1€"
        android:textColor="@android:color/black"
        android:textSize="14sp" />

</RelativeLayout>

现在我的问题是,加号和减号按钮之间的文本字段是动态设置的。所以有时它是空的,有时候里面有内容。右边的价格也是如此。有时它是一个更长的字符串有时更短。现在正因为如此,按钮会移动,如下图所示:

enter image description here

我想通过从头开始在这两个按钮之间设置更大的minDistance来防止这种情况。右侧按钮和右侧屏幕也是如此。但我不知道如何做到这一点。

2 个答案:

答案 0 :(得分:1)

尝试在textView

上使用android:minWidth=""选项

答案 1 :(得分:0)

您可以为textview设置固定宽度,而不是按如下方式设置wrap_content

<TextView
    android:id="@+id/basket_item_list_count"
    android:layout_width="40dp"
    android:layout_height="wrap_content"
    android:layout_alignParentEnd="false"
    android:layout_alignParentRight="false"
    android:layout_centerVertical="true"
    android:layout_marginEnd="2dp"
    android:layout_marginRight="2dp"
    android:layout_toLeftOf="@+id/basket_item_list_decrement"
    android:layout_toStartOf="@+id/basket_item_list_decrement"
    android:gravity="center_vertical"
    android:text="nx"
    android:textColor="@android:color/black"
    android:textSize="14sp"/>