首页 > 代码库 > 63ScrollView嵌套ListView带来的问题以及解决方式

63ScrollView嵌套ListView带来的问题以及解决方式

项目中用到了ScrollView结合GridView,出现了很多问题,这里先拿ListView开刷。想要实现的效果如下:

技术分享

但是实现的效果却如下:

技术分享

崩溃了。布局是这样的:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    >

    <ListView
        android:id="@+id/list_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </ListView>

</ScrollView>

加入给ScrollView添加下面的属性:

 android:fillViewport="true"

运行界面是出来,但是界面怎么都拖不动,解决的办法就是自定义ListView:

package com.example.uilistviewtest;

import android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;

public class MyListView extends ListView{

	
	public MyListView(Context context, AttributeSet attrs, int defStyleAttr) {
		super(context, attrs, defStyleAttr);
	}

	public MyListView(Context context, AttributeSet attrs) {
		super(context, attrs);
	}

	public MyListView(Context context) {
		super(context);
	}

	@Override
	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
		int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
		super.onMeasure(widthMeasureSpec, expandSpec);
	}
	
	
}
新的布局:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    >

    <com.example.uilistviewtest.MyListView
        android:id="@+id/list_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </com.example.uilistviewtest.MyListView>

</ScrollView>


再次运行,就解决问题了。

交流的可以加我:619189810


63ScrollView嵌套ListView带来的问题以及解决方式