ListView底部分隔線的問題

ListView底部分隔線的問題 

      在工作中遇到了一個難題,就是一個listView在最下面的一個item下面沒有分割線,要求是必須得有這條分割線。經過一通研究發現了這個奇怪的現象: 
      1. ListActivity有這條底部分割線。 
      2.在Activity中只有listview,沒有別的控件的話也會有。 
      其實ListActivity也是一個Activity,只不過在其中使用了SetContentView(listView)方法設置了一個listView作爲其顯示的View而已。所以結論就是隻要這個activity調用了SetContentView(listView)就會有這條底部分割線。 
      那麼什麼情況下纔不會有這條分割線呢?在Activity中如果調用setContentView(View)而ListView只是內嵌入到這個View的話有可能會沒有這條分割線。 
      分析其原因:通過加斷點調試發現在listView中,所有的分割線都是通過畫一個很窄的矩形來實現的,但是在畫分割線前都會都會判斷目前的位置A和listView的長度B,如果A=B了,那麼就不會畫這條分割線了。但是將Listview嵌入到一個View中,一般會設置爲高度爲wrap_content,這種情況下,最後那條分割線的位置剛好等於listView的高度,所以系統不會畫上這條分割線。那要怎麼樣纔會畫上呢?很簡單,將ListView的高度設置爲fill_partent就可以了。 

     當然以上所說的都是item很少的情況下,如果item很多以至於必須顯示滾動條的話,那最後一個item下面是肯定不會有分割線了。

自己測試:在一個Activity中只有一個ListView,把它的layout_height修改爲fill_parent,最底下的線是可以顯示出來的,但修改爲wrap_content就顯示不出來了,如下圖:


自己測試:在一個Activity中最上邊和最下邊都有個TextView,ListView夾在中間,把它的layout_height爲fill_parent或者wrap_content,最底下的線是可以顯示出來的。

佈局爲:

[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7.     <TextView   
  8.         android:id="@+id/mTop"  
  9.         android:layout_width="wrap_content"  
  10.         android:layout_height="wrap_content"  
  11.         android:layout_alignParentTop="true"  
  12.         android:text="HelloWorldTop"  
  13.         />  
  14.     <TextView   
  15.         android:id="@+id/mBottom"  
  16.         android:layout_width="wrap_content"  
  17.         android:layout_height="wrap_content"  
  18.         android:layout_alignParentBottom="true"  
  19.         android:text="HelloWorldBottom"  
  20.         />  
  21.     <ListView  
  22.         android:id="@+id/mList"  
  23.         android:layout_width="fill_parent"  
  24.         android:layout_height="wrap_content"  
  25.         android:layout_below="@id/mTop"  
  26.         android:layout_above="@id/mBottom"/>  
  27. </RelativeLayout>  
效果爲:


轉摘自:http://blog.csdn.net/xiaoxiaobian3310903/article/details/7182231

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章