自定义可适应ScrollView的ListView—最简单的方式
1.步骤
-
1.自定义可适应ScrollView的ListView,自动测量其高度
- 自定义一个类继承自ListView,通过重写其onMeasure方法,达到对ScrollView适配的效果。—设置不滚动?
- protected void onMeasure(iint widthMeasureSpec, int heightMeasureSpec) {}
- 测量方法中里面写入int expandSpec = MeasureSpec.makeMeasureSpec(
Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); - 调用父类的onMeasure方法 super.onMeasure(widthMeasureSpec, expandSpec);
- 自定义一个类继承自ListView,通过重写其onMeasure方法,达到对ScrollView适配的效果。—设置不滚动?
-
2.此时默认ScrollView显示的首项是ListView,需要手动把ScrollView滚动至最顶端。
* (ScrollView) sv =(ScrollView) findViewById(R.id....);
* sv.smoothScrollTo(0, 0);
2. 代码示例 (主要代码)
`
import 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);
}
}
`