自定义一个类继承自ListView,通过重写其onMeasure方法,达到对ScrollView适配的效果。
mport android.content.Context;
import android.util.AttributeSet;
import android.widget.ListView;
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,
int defStyle) {
super(context, attrs, defStyle);
}
@Override
/**
* 重写该方法,达到使ListView适应ScrollView的效果
*/
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
在xml布局中和Activty中使用的ListView改成这个自定义ListView就行了。
这个方法和方法1有一个同样的毛病,就是默认显示的首项是ListView,需要手动把ScrollView滚动至最顶端。
- sv = (ScrollView) findViewById(R.id.act_solution_4_sv);
- sv.smoothScrollTo(0, 0);
本文介绍了一种通过自定义ListView并重写onMeasure方法来实现ListView与ScrollView适配的方法。此方法可以使ListView在ScrollView中正常显示,但需要手动将ScrollView滚动到顶部以确保ListView的首项正确展示。
2318

被折叠的 条评论
为什么被折叠?



