项目中用到了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