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> 

这样做的呈现是在这里: enter image description here

问题是红色框上(上图片):当我有一个很大的内容(很多文字)第二个价格(底部)把自己放在底部和文本之间的第一个价格和第二..

我想知道如何使它只是留下来在第一价格的底部,谢谢!

回答

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> 
+0

这是伟大的桑格拉姆!谢谢,现在的问题是如果数字是> 10000的“€”符号下来..但我改变了他2布局的重量,它的工作原理。 – eento

0

您已设置layout_align_parent_bottom="true"第二个价格,这就是为什么它保持固定的底部。将其更改为layout_below="@+id/souscarte_element_promoT"

注意的RelativeLayout允许其子女重叠,所以它会吸取孩子们在其他孩子的顶部,如果你不小心abotu你如何安排孩子。

+0

是,但是当我做第二个价格来一日价格的底部,但它覆盖的文字说明.. – eento

+0

正如我所说的,RelativeLayout的孩子可以重叠。您可以将描述设置为'layout_toLeftOf = @ + id/souscarte_element_prixT'。 – Karakuri

+0

无法在LinearLayout中设置layout_toLeftOf .. – eento

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> 
+0

示例?我有太多的布局.. – eento

+0

对不起,迟到了,请检查我的编辑 – BamsBamx

0

这是一个很难实现的功能,因为TextView不提供此功能。

但是,它仍然是可能的。

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

我说2因为第一个会给你Y坐标,最后一个会告诉你,如果你把文本视图,它将包装,所以你需要添加额外的Y坐标。

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

无论如何,正如其他人所提到的,一个简单的方法是简单地始终把价格下面的文字。