2011-06-16 100 views
0

我有一個自定義適配器的ListView,我試圖修改列表項的行佈局XML,使它看起來正確。我試圖實現以下佈局(想象下面的垂直居中):安卓與列表視圖行XML佈局的問題

Icon Title   > 
     Description 

,我快到不過是標題和描述的都存在不同lenghts的問題,因此,「>」圖標被更長的文字推向右側(有時會超出屏幕)。

我試圖讓「>」圖標始終位於屏幕的最右邊,並且讓任何更長的文本用省略號「加蓋」。我寧願不使用RelativeLayout。這裏是我的代碼:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="horizontal" 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:paddingTop="10dp" 
android:paddingBottom="10dp" > 
    <ImageView 
     android:id="@+id/status" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="10dp" 
     android:layout_gravity="center_vertical" 
     android:src="@drawable/icon" /> 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 
      <TextView 
       android:id="@+id/serverName" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:paddingRight="10dp" 
       android:paddingLeft="10dp" 
       android:textSize="16sp" /> 
      <TextView 
       android:id="@+id/description" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:paddingRight="10dp" 
       android:paddingLeft="15dp" 
       android:textSize="10sp" 
       android:singleLine="true" 
       android:ellipsize="end" /> 
    </LinearLayout> 
<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="10dp" 
    android:layout_gravity="center_vertical" 
    android:gravity="right" 
    android:src="@drawable/chevron" /> 
</LinearLayout> 

我很感激任何幫助。

回答

2

使用RelativeLayout來實現這一點。這裏是Android開發者博客的一個例子LINK

+0

不錯的環節,很有意義。影響我使用RelativeLayout。 – littleK 2011-06-16 15:04:31

+0

作爲鏈接說較少的佈局將優化您的用戶界面。在列表視圖的情況下,記住它是非常必要的。 – Gopal 2011-06-16 15:06:42

+0

+1和@littleK是的肯定... !!該鏈接也影響了我改變我目前的應用佈局......!非常感謝。 – 2011-06-20 06:23:12

1

把你的圖標放在另一個LinearLayout 只是忽略並替換你的圖標和文字顏色,因爲它是我的陣型。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:orientation="horizontal" android:layout_height="wrap_content"> 
    <LinearLayout android:layout_width="fill_parent" android:padding="5sp" android:layout_height="fill_parent" android:layout_weight="5"> 
     <ImageView android:id="@+id/news_image" android:layout_height="50sp" android:layout_width="50sp" android:scaleType="center" android:src="@drawable/my_icon" /> 
    </LinearLayout> 
    <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="8sp" android:layout_weight="2"> 
     <TextView android:text="News Heading" android:id="@+id/news_heading" android:layout_height="wrap_content" android:textSize="20sp" android:ellipsize="end" android:maxLines="1" android:layout_width="fill_parent" android:textColor="@color/themePlainBlue"></TextView> 
     <TextView android:text="News Details" android:id="@+id/news_details" android:layout_height="wrap_content" android:ellipsize="end" android:maxLines="1" android:layout_width="fill_parent"></TextView> 
    </LinearLayout> 
    <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="5.6"> 
     <ImageView android:id="@+id/news_image" android:layout_height="50sp" android:scaleType="center" android:src="@drawable/list_arrow" android:layout_width="32sp" android:layout_gravity="center_vertical|center_horizontal"></ImageView> 
    </LinearLayout> 


</LinearLayout> 
+0

這很好用,謝謝! – littleK 2011-06-16 13:42:21