2016-08-18 68 views
0

我嘗試並排放置三個視圖:text1 - img - text2。 Img必須始終在text1上(沒有額外的空間)。我試圖用佈局權重來解決這個問題,但是通過這個解決方案,img始終處於父視圖的中心。並排視圖,動態尺寸

預期結果:

文本1短,文本2長。不要文本1和IMG之間添加空間

+----------------------------------------+ 
| [Text1 a] [img] [Text2 asdfghjklz... ] | 
+----------------------------------------+ 

ellipsized文字,保持IMG中心

+----------------------------------------+ 
| [Text1 asdfg...] [img] [Text2 asdf...] | 
+----------------------------------------+ 

文本1長,文本2短

+----------------------------------------+ 
| [Text1 asdfgadfafs...] [img] [Text2 a] | 
+----------------------------------------+ 

這是最接近我可以得到(使用重量),但問題是,如果text1短,img仍然在佈局的中心。我應該總是直接在text1的右側。

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 

    <TextView 
     android:id="@+id/textview1" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:ellipsize="end" 
     android:maxLines="1" 
     tools:text="Text1 asdfghjkl" /> 

    <ImageView 
     android:id="@+id/img" 
     android:layout_width="18dp" 
     android:layout_height="18dp" 
     android:layout_marginLeft="4dp" 
     android:layout_marginRight="4dp" 
     android:src="@drawable/ic_arrow" /> 

    <TextView 
     android:id="@+id/textview2" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:ellipsize="end" 
     android:maxLines="1" 
     tools:text="Text2 asdfghjkl" /> 

</LinearLayout> 
+0

那麼如果Text1 long,img&Text2短是什麼要求? – sJy

+0

新增了一個例子,所以儘可能地將text2推向右邊。 – devha

回答

0

使用相對佈局將每個小部件對齊到其他小部件的右側。對於第一個的TextView給予一定寬度和添加低於2線

機器人:ellipsize =「結束」 機器人:MAXLINES =「1」

爲圖像使用您需要的高度和寬度

用於第三textview使用下面的代碼。對於這個textview你不必設置你可以使用換行內容的寬度。

機器人:ellipsize = 「結束」 機器人:MAXLINES = 「1」

希望這有助於或至少這將是一個良好的開端。

+0

我想第一個文本字段根據文本長度調整其寬度,所以我不能給它任何固定的寬度。另外,如果我使用相對佈局並對齊其他視圖,text1如果足夠長,則將text2完全推出視圖。 – devha