在垂直方向上绑定两个TextView

时间:2018-03-21 08:49:34

标签: android android-layout

RelativeLayout有一个嵌套的LinearLayout,其中包含两个相对于彼此水平放置的TextViews。这是DiscountAmountAmountWithDiscount

enter image description here

我需要将DiscountAmountAmountWithDiscount始终保持在垂直的同一级别,为此我将android属性放在LinearLayoutandroid:layout_below = "@ + id / textViewRowQuantity"中。但如果Name太长并且需要三行,那么它将转到DiscountAmount。如果Name不超过2行,那么一切都很好。

请告诉我,我该如何解决这个问题?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayoutSaleListRow"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="2dp"
android:orientation="horizontal"
android:padding="5dp" >

<ImageView
    android:id="@+id/imageViewRemoveRowSale"
    android:layout_width="@dimen/size_30px"
    android:layout_height="@dimen/size_30px"
    android:layout_alignParentLeft="true"
    android:layout_marginRight="10dp"
    android:layout_marginTop="10dp"
    android:src="@drawable/ic_action_remove"/>

<RelativeLayout
    android:id="@+id/relativeLayoutIncQuantity"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="10dp"
    android:layout_toRightOf="@+id/imageViewRemoveRowSale"
    android:layout_toLeftOf="@+id/imageViewEditRowSale"
    android:orientation="horizontal">


<TextView
    android:id="@+id/textViewRowPrice"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_marginRight="5dp"
    android:text="TextView" />

<TextView
    android:id="@+id/textViewRowQuantity"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/textViewRowPrice"
    android:layout_alignParentRight="true"
    android:layout_marginRight="5dp"
    android:text="TextView" />


<TextView
    android:id="@+id/textViewRowName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_toLeftOf="@+id/textViewRowPrice"
    android:text="TextView" />



    <LinearLayout
        android:id="@+id/layoutDiscount"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textViewRowQuantity"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/textViewRowDiscountAmount"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:text="TextView" />

        <TextView
        android:id="@+id/textViewRowAmountWithDiscount"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
            android:gravity="right"
            android:layout_weight="1"
        android:layout_marginRight="5dp"
        android:text="TextView" />
  </LinearLayout>

    </RelativeLayout>

<ImageView
    android:id="@+id/imageViewEditRowSale"
    android:layout_width="@dimen/size_45px"
    android:layout_height="@dimen/size_45px"
    android:layout_marginTop="5dp"
    android:layout_alignParentRight="true"
    android:src="@drawable/ic_action_edit" />

添加结果: enter image description here

通过ConstraintLayout实现。谢谢大家。

5 个答案:

答案 0 :(得分:0)

您可以通过添加以下行来将TextView中的行数限制为2:

android:ellipsize="end"
android:lines="2"

结束椭圆化结束意味着如果文本太长则会被三个点替换......

答案 1 :(得分:0)

试试这个:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativeLayoutSaleListRow"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="2dp"
    android:orientation="horizontal"
    android:padding="5dp" >

    <ImageView
        android:id="@+id/imageViewRemoveRowSale"
        android:layout_width="@dimen/size_30px"
        android:layout_height="@dimen/size_30px"
        android:layout_alignParentLeft="true"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp"
        android:src="@drawable/ic_action_remove"/>

    <RelativeLayout
        android:id="@+id/relativeLayoutIncQuantity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="10dp"
        android:layout_toRightOf="@+id/imageViewRemoveRowSale"
        android:layout_toLeftOf="@+id/imageViewEditRowSale"
        android:orientation="horizontal">


        <TextView
            android:id="@+id/textViewRowPrice"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_marginRight="5dp"
            android:text="TextView" />

        <TextView
            android:id="@+id/textViewRowQuantity"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textViewRowPrice"
            android:layout_alignParentRight="true"
            android:layout_marginRight="5dp"
            android:text="TextView" />


        <TextView
            android:id="@+id/textViewRowName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_toLeftOf="@+id/textViewRowPrice"
            android:text="text"
            android:minLines="2"/>



        <LinearLayout
            android:id="@+id/layoutDiscount"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/textViewRowName"
            android:orientation="horizontal">

            <TextView
                android:id="@+id/textViewRowDiscountAmount"
                android:layout_width="wrap_content"
                android:layout_weight="1"
                android:layout_height="wrap_content"
                android:layout_marginRight="5dp"
                android:text="TextView" />

            <TextView
                android:id="@+id/textViewRowAmountWithDiscount"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="right"
                android:layout_weight="1"
                android:layout_marginRight="5dp"
                android:text="TextView" />
        </LinearLayout>

    </RelativeLayout>


    <ImageView
        android:id="@+id/imageViewEditRowSale"
        android:layout_width="@dimen/size_45px"
        android:layout_height="@dimen/size_45px"
        android:layout_marginTop="5dp"
        android:layout_alignParentRight="true"
        android:src="@drawable/ic_action_edit" />

</RelativeLayout>

希望这有帮助

答案 2 :(得分:0)

如果你想显示AmountWithDiscount低于折扣,那么改变衬里布局方向如下。

select rg.guardian_name,
       rg.guardian_id,
       rg.guardian_email 
from rts_guardian rd, rts_ward rw, rts_wrdgrd_junction junct 
where rg.guardian_id = junct.guardian_id and rw.ward_id=junct.ward_id and rw.garde='VIII';

答案 3 :(得分:0)

您可以尝试以下代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayoutSaleListRow"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="2dp"
android:orientation="horizontal"
android:padding="5dp" >

<ImageView
    android:id="@+id/imageViewRemoveRowSale"
    android:layout_width="@dimen/size_30px"
    android:layout_height="@dimen/size_30px"
    android:layout_alignParentLeft="true"
    android:layout_marginRight="10dp"
    android:layout_marginTop="10dp"
    android:src="@drawable/ic_action_remove"/>

<RelativeLayout
    android:id="@+id/relativeLayoutIncQuantity"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="10dp"
    android:layout_toRightOf="@+id/imageViewRemoveRowSale"
    android:layout_toLeftOf="@+id/imageViewEditRowSale"
    android:orientation="horizontal">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/rr_layout">

    <TextView
        android:id="@+id/textViewRowPrice"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginRight="5dp"
        android:text="TextView" />

    <TextView
        android:id="@+id/textViewRowQuantity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textViewRowPrice"
        android:layout_alignParentRight="true"
        android:layout_marginRight="5dp"
        android:text="TextView" />


    <TextView
        android:id="@+id/textViewRowName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_toLeftOf="@+id/textViewRowPrice"
        android:text="TextView" />

    </RelativeLayout>

    <LinearLayout
        android:id="@+id/layoutDiscount"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/rr_layout"
        android:orientation="horizontal">

        <TextView
            android:id="@+id/textViewRowDiscountAmount"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:text="TextView" />

        <TextView
            android:id="@+id/textViewRowAmountWithDiscount"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:layout_weight="1"
            android:layout_marginRight="5dp"
            android:text="TextView" />
    </LinearLayout>

</RelativeLayout>

<ImageView
    android:id="@+id/imageViewEditRowSale"
    android:layout_width="@dimen/size_45px"
    android:layout_height="@dimen/size_45px"
    android:layout_marginTop="5dp"
    android:layout_alignParentRight="true"
    android:src="@drawable/ic_action_edit" /></RelativeLayout>

答案 4 :(得分:0)

对衬里布局进行一些改变..

        <LinearLayout
        android:id="@+id/layoutDiscount"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textViewRowQuantity"
        android:orientation="horizontal"
        android:weightSum="1"
        >
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.3">
        <TextView
            android:id="@+id/textViewRowDiscountAmount"
            android:layout_width="wrap_content"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_marginRight="5dp"
            android:singleLine="true"
            android:text="TextViewsdfsdfdsgfd" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.7">
        <TextView
            android:id="@+id/textViewRowAmountWithDiscount"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="right"
            android:layout_marginLeft="10dp"
            android:layout_weight="1"
            android:singleLine="true"
            android:layout_marginRight="5dp"
            android:text="textview" />
        </LinearLayout>
    </LinearLayout>