0

我有这个 layout.xml :

<?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingRight="10dp"
        android:paddingLeft="10dp">
    <RelativeLayout android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="5dip"
        android:background="@color/white"
        android:layout_marginLeft="17dp"
        android:layout_marginRight="17dp">
         <LinearLayout android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:id="@+id/list_linearLayout">
            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">
                <!--  titre food -->
                <TextView android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:id="@+id/souscarte_element_titleT"
                android:textColor="@color/black"
                android:paddingLeft="5dp"/>

                 <!-- description food -->          
                <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal">
                    <TextView android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:textColor="@color/black"
                    android:id="@+id/souscarte_element_descT"
                    android:paddingLeft="5dp"/>
                    </LinearLayout>
                </LinearLayout>
            </LinearLayout>
            <!-- promo food -->
             <TextView android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:id="@+id/souscarte_element_promoT"
                android:gravity="right"
                android:textColor="@color/black"
                android:layout_alignParentRight="true"
                android:layout_toLeftOf="@+id/souscarte_element_prixT"
                android:paddingRight="5dp"/>
            <!--  price food -->
             <TextView android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textStyle="bold"
                android:id="@+id/souscarte_element_prixT"
                android:gravity="right"
                android:textColor="@color/black"
                android:layout_alignParentRight="true"
                android:layout_alignParentBottom="true"
                android:paddingRight="5dp"/>
    </RelativeLayout>
    </FrameLayout>

这个的渲染在这里: 在此处输入图像描述

问题在红框上(在图片上):当我有一个很大的内容(很多字)时,第二个价格(在底部)将自己放在底部,文本位于第一个价格和第二个价格之间。

我想知道如何让它保持在第一个价格的底部,谢谢!

4

4 回答 4

1

请检查这个。希望这对你有帮助。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:paddingLeft="10dp"
    android:paddingRight="10dp" >
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="17dp"
        android:layout_marginRight="17dp"
        android:background="#FFFFFF"
        android:orientation="horizontal"
        android:padding="5dip" >
        <LinearLayout
            android:id="@+id/list_linearLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="0.2"
                android:orientation="vertical" >
                <TextView
                    android:id="@+id/souscarte_element_titleT"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:paddingLeft="5dp"
                    android:textColor="#000000"
                    android:textStyle="bold" />
                <TextView
                    android:id="@+id/souscarte_element_descT"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:paddingLeft="5dp"
                    android:textColor="#000000" />
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="0.8"
                android:orientation="vertical" >
                <TextView
                    android:id="@+id/souscarte_element_promoT"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:paddingRight="5dp"
                    android:textColor="#000000"
                    android:textStyle="bold" />
                <TextView
                    android:id="@+id/souscarte_element_prixT"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:paddingRight="5dp"
                    android:textColor="#000000"
                    android:textStyle="bold" />
            </LinearLayout>
        </LinearLayout>
    </RelativeLayout>
</FrameLayout>
于 2013-03-30T06:52:50.853 回答
0

您已经设置layout_align_parent_bottom="true"了第二个价格,这就是为什么它保持在底部。将此更改为layout_below="@+id/souscarte_element_promoT".

请注意,RelativeLayout 允许其子级重叠,因此如果您不小心安排子级的方式,它会将子级绘制在其他子级之上。

于 2013-03-30T00:23:28.323 回答
0

您可以在主布局内嵌套两个布局...

一个用于文本,另一个用于价格

像这样的东西:

<LinearLayout 
    android:orientation="horizontal" >
    <LinearLayout       <!--For the texts-->
        android:layout_weight="1"
        android:orientation="vertical" >

        <TextView >
        <TextView >

    </LinearLayout>

   <LinearLayout <!--For the prices-->
        android:orientation="vertical" >

        <TextView >
        <TextView >

    </LinearLayout>

</LinearLayout>
于 2013-03-30T00:23:53.690 回答
0

这是一件相当困难的事情,因为 TextView 不提供此功能。

但是,它仍然是可能的。

您可以扩展 TextView 并且当它应该显示文本时(不确定以哪种方法),您可以测量最后 2 行文本(可能使用Paint.measureText),以便知道放置价格 textView 的位置。

我说 2 是因为第一个会给你 Y 坐标,最后一个会告诉你它是否会在你放置 textview 的情况下换行,所以你需要在 Y 坐标上添加额外的内容。

另一种可能的解决方案是将价格作为文本放在描述 TextView 中。在此解决方案中,您还需要检查最后一行,以便知道是否需要创建新行或使用当前行,并且需要知道要放置多少空格。

无论如何,正如其他人所提到的,一种简单的方法是简单地将价格始终放在文本下方。

于 2013-03-30T11:53:18.337 回答