2013-08-31 130 views
0

我已經定製了列表視圖佈局。列表中的項目將會是5或更多。如果不止如此,列表中有5-10個項目,它看起來不錯。android listview減少項目填充屏幕

但是,如果有隻有5個項目說,空白空間出現在高度較大的設備列表下方。這看起來不太好。

以下是我的列表行佈局 -

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="#FFF" 
    android:orientation="horizontal" 
    android:padding="5dip" > 

    <TextView 
     android:id="@+id/txt_update_title" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:focusable="false" 
     android:paddingLeft="10sp" 
     android:text="title" 
     android:textColor="#b73a3e" 
     android:textStyle="bold" 
     android:typeface="normal" /> 

    <TextView 
     android:id="@+id/txt_update_excerpt" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/txt_update_title" 
     android:layout_marginTop="1dip" 
     android:focusable="false" 
     android:paddingLeft="10sp" 
     android:paddingRight="10dp" 
     android:text="text" 
     android:textColor="#343434" 
     android:textSize="15dip" /> 

    <TextView 
     android:id="@+id/txt_uid" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_marginLeft="20dip" 
     android:layout_toRightOf="@+id/txt_update_title" 
     android:focusable="false" 
     android:text="some" /> 

    <ImageView 
     android:id="@+id/arrow" 
     android:layout_width="20dp" 
     android:layout_height="20dp" 
     android:layout_alignBottom="@+id/txt_uid" 
     android:layout_alignRight="@+id/txt_update_excerpt" 
     android:layout_centerInParent="true" 
     android:scaleType="centerInside" 
     android:paddingRight="5dp" 
     android:src="@drawable/arrow" /> 

</RelativeLayout> 

和ListView -

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" 
     android:padding="10dp" > 

     <TextView 
      android:id="@+id/tag_line" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="@string/tagline" 
      android:textColor="#fff" /> 

     <ListView 
      android:id="@+id/list_updates" 
      android:layout_width="match_parent" 
      android:layout_height="fill_parent" 
      android:layout_weight="1" 
      android:cacheColorHint="#0000" 
      android:divider="#00000000" 
      android:dividerHeight="0px" 
      android:overScrollMode="never" > 
     </ListView> 
</LinearLayout> 

我的願望是,如果設備的高度是更大的話,我想名單通過縮放高度取完高度每行的方式應顯示所有項目不滾動。如果項目多則滾動應該出現。我如何設置?


更新

我可以選擇加入一個解決方案,我會找很多項目是如何去那裏的名單之前,如果他們是小於5-6,我d選擇由LinearLayout組成的不同佈局或填充空白區域的其他佈局。但我無法弄清楚我需要爲這樣的LinearLayout選擇結構。我應該選擇5-6 LinearLayout在另一個之下還是一個迭代?

+0

你是否意味着它不保留你選擇的背景顏色,而是列表的其餘部分是主題顏色? – ChiefTwoPencils

+0

取而代之的是背景顏色,我更願意使用填充整個高度的設備高度來填充那些較少的項目。如果項目多於那麼它應該正常顯示。 – Gimali

+0

是的,但你的願望是,因爲它看起來不太好。有一個解決方案可以讓空白列表區域與其餘視圖具有相同的背景,因此看起來不錯。我認爲你的想法存在的問題是各種用法之間的不一致。如果我在一個項目中使用該應用程序,它會不必要地拉伸,如果我有10個,它看起來就像我期望的那樣。 – ChiefTwoPencils

回答

1

嗯,在我看來,如果我需要實現這樣的功能,我會做類似下面:

  • 檢查,如果存在空白,你不想要 (blankHeight =(ListViewHeight計數*的rowHeight) > 0)
  • heightToPlus = blankHeight /計數
  • 然後可以將每個行的高度設置爲rowHeight + heightToPlus

每高度可以通過得到的getHeight並且也能成爲一個通過setHeight,他們是觀點的方法。
所以我認爲它不難實現...