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的內部文本。在這個解決方案中,您還需要檢查最後一行,以便您可以知道是否需要創建新行或使用當前行,並且需要知道要放置多少個空間。

無論如何,正如其他人所提到的,一個簡單的方法是簡單地始終把價格下面的文字。