使用自定义适配器删除ListView行之间的间距

时间:2014-04-17 14:48:40

标签: android android-listview

我试图找出如何使用在ListView函数中返回ImageView的自定义适配器删除getView()中行之间的间距。

问题的视觉表示: enter image description here

ListView目前位于RelativeLayout内。

我已经尝试将ListView上的填充,分隔符和边距全部设置为0dp而没有运气。我还尝试在ImageView函数中的每个getView()项上设置填充 - 所有这些都没有运气。

如何删除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;
} 

1 个答案:

答案 0 :(得分: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;
        }