2016-04-05 65 views
0

我有這樣的佈局:安卓的LinearLayout文本和圖標

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:azeoo="http://schemas.android.com/apk/res-auto" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<RelativeLayout 
    android:id="@+id/opening_today_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:paddingLeft="16dp" 
    android:paddingRight="16dp"> 

    <TextView 
     android:id="@+id/opening_today" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:maxLines="1" 
     android:ellipsize="end" 
     android:text="A standard line" /> 

    <ImageView 
     android:layout_toRightOf="@id/opening_today" 
     android:layout_width="32dp" 
     android:layout_height="32dp" 
     android:paddingLeft="8dp" 
     android:src="@drawable/ic_arrow_drop_down" /> 

</RelativeLayout> 

</LinearLayout> 

結果是:

enter image description here

但是,如果我把一個長文本 「opening_today」 像爲例「非常非常非常長的一行,並帶有很多帶有橢圓大小寫的文本「,ImageView消失了:

enter image description here

那麼,我該怎麼辦才能保持的ImageView連文本都有大尺寸?

+1

Textview有一個'drawableRight'屬性。你不需要單獨的ImageView –

+0

爲什麼不使用[Spin​​ner](https://developer.android.com/guide/topics/ui/controls/spinner.html)? – CaptJak

回答

2

嘗試這可能對你有幫助

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:azeoo="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<RelativeLayout 
    android:id="@+id/opening_today_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:gravity="left" 
    android:paddingLeft="16dp" 
    android:paddingRight="16dp" > 

    <TextView 
     android:id="@+id/opening_today" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ellipsize="end" 
     android:layout_toLeftOf="@+id/iv" 
     android:maxLines="1" 
     android:text="A very very very long line with a lot of texts with ellipsize end" /> 

    <ImageView 
     android:id="@+id/iv" 
     android:layout_width="32dp" 
     android:layout_height="32dp" 
     android:layout_alignParentRight="true" 
     android:paddingLeft="8dp" 
     android:src="@drawable/ic_arrow_drop_down" /> 
</RelativeLayout> 

+0

不,你的情況不適合我的第一個結果與「標準線」文本。 – anthony

+0

你也應該在相對佈局。 android:gravity =「left」 –

+0

以絕對的方式,我如何解決我的TextView和ImageView的第一個問題? – anthony

0

試試這個

<RelativeLayout 
     android:id="@+id/opening_today_layout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="horizontal" 
     android:paddingLeft="16dp" 
     android:paddingRight="16dp" 
     > 

     <TextView 
      android:id="@+id/opening_today" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:maxLines="1" 
      android:ellipsize="end" 
      android:text="A standard lffsdfsfsdfsfsfhgf fkhh gkjhg hkgj jhg hjgk jhg jkgjhg kjh jhgkj gkjsfsfsdfsdfsfsfdfdfdfsdf sdfsdfsdf sdfsdfsdfsdfsfdsdfsdfsfsfine" 
      android:drawableRight="@drawable/ic_arrow_drop_down" 
      /> 
    </RelativeLayout> 
0

由於cricket_007在其評論說,你可以在TextView標籤內的照片直接引用圖像使用android:drawableRight

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:azeoo="http://schemas.android.com/apk/res-auto" 
android:orientation="vertical" android:layout_width="match_parent" 
android:layout_height="match_parent"> 

<RelativeLayout 
    android:id="@+id/opening_today_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:paddingLeft="16dp" 
    android:paddingRight="16dp"> 

    <TextView 
     android:id="@+id/opening_today" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:maxLines="1" 
     android:ellipsize="end" 
     android:text="A standard line A standard line A standard line A standard line A standard line" 
     android:drawableRight="@drawable/ic_arrow_drop_down"/> 

</RelativeLayout> 

這樣做,你不能再指定圖像​​的高度和寬度在初始代碼。請確保將正確的圖像大小放入所有res/drawable文件夾中。

+0

如何定製此可繪製(大小和顏色)? – anthony

+0

關於如何「定製」尺寸,你可以在這裏找到信息http://developer.android.com/intl/es/guide/practices/screens_support.html – Nirekin