如果是新手朋友,那么请先检查你创建 adapter 的地方是不是有错误。没错的话那么出现这个问题一般是在 scrollview 中使用了 listview 导致,因为 scrollview 无法正确计算 listview 的高度。它不能计算,那么只能靠我们自己了,超简单。
下面是公司最近做的一个爱屁屁,要在 scrollview 中使用 listview,为了正常实现功能,我们来自定义一个 listview,重写它的 onMeasure 方法,代码如下:
- public class ListViewForScrollView extends ListView{
- public ListViewForScrollView(Context context) {super(context);
- }public ListViewForScrollView(Context context, AttributeSet attrs) {super(context, attrs);
- }public ListViewForScrollView(Context context, AttributeSet attrs,intdefStyleAttr) {super(context, attrs, defStyleAttr);
- }public ListViewForScrollView(Context context, AttributeSet attrs,intdefStyleAttr,intdefStyleRes) {super(context, attrs, defStyleAttr, defStyleRes);
- }@Override
- protected void onMeasure(intwidthMeasureSpec,intheightMeasureSpec) {intcustomSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >>2, MeasureSpec.AT_MOST);super.onMeasure(widthMeasureSpec, customSpec);
- }
- }
只需两行代码即可。再将其使用到布局当中:
- <com.snda.gmm.common.widget.ListViewForScrollViewandroid:id="@+id/list"android:layout_marginTop="4dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:divider="@null"android:dividerHeight="1px"app:adapter="@{listAdapter}"/>
搞定,效果图如下:
怎么样,很简单吧,当然还有其他的办法,不过相对比较麻烦,推荐使用这样自定义的 listview。
来源: http://www.bubuko.com/infodetail-2011391.html