2014-04-17 51 views
1

我想弄清楚如何使用在getView()函數中返回ImageView的自定義適配器來刪除ListView中的行之間的間距。問題的使用自定義適配器刪除ListView行之間的間距

可視化表示: enter image description here

ListView目前坐在裏面RelativeLayout

我已經嘗試在ListView上設置填充,分隔線和邊距全部爲0dp,但沒有運氣。我也嘗試在getView()函數中的每個ImageView項目上設置填充 - 所有這些都沒有運氣。

如何刪除ListView行之間的所有填充/邊距/間距?我願意接受任何解決方案,無論是基於Java還是基於XML。

的ListView XML:

<ListView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/listView1" 
    android:layout_below="@+id/img1" 
    android:layout_centerHorizontal="true" 
    android:layout_above="@+id/textView" 
    android:fastScrollEnabled="false" 
    android:divider="@null" 
    android:padding="0dp" 
    android:layout_margin="0dp" 
    android:dividerHeight="0dp" 
    /> 

相關getView()適配器代碼

#some irrelevant code to load images 

viewGroup.setClipToPadding(false); 
viewGroup.setPadding(0,0,0,0); 


if(view == null){ 
    ImageView newView = new ImageView(this.context); 
    newView.setImageDrawable(img); 
    newView.setPadding(0,0,0,0); 
    return newView; 
} 
else{ 

    ((ImageView) view).setImageDrawable(img); 
    return view; 
} 
+0

郵政佈局也。 – SachinGutte

+0

我們可以看到您的適配器代碼嗎?和列表項本身的XML? – Rarw

+0

添加了getView和ListView XML。沒有其他與佈局有關的Java代碼。還需要什麼嗎? – Sinmok

回答

1

想通了。我需要在新的ImageView上使用setAdjustViewBounds。在getView()從原始代碼

實施例:

 if(view == null){ 
      ImageView newView = new ImageView(this.context); 
      newView.setImageDrawable(img); 
      newView.setPadding(0,0,0,0); 
      newView.setAdjustViewBounds(true); 
      return newView; 
     } 
     else{ 

      ((ImageView) view).setImageDrawable(img); 
      return view; 
     } 
相關問題