如题,上代码~
/**
* 自定义的ListView,用于解决ScrollView嵌套ListView的问题。
* author: jby
* created at 2016/8/1 14:10
*/
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 defStyleAttr) {
super(context, attrs, defStyleAttr);
}
/**
* 重写该方法达到使ListView适应ScrollView的效果
* @param widthMeasureSpec
* @param heightMeasureSpec
*/
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
}
}
PS: 如果遇到进入ScrollView自动移动到ListView的第一项时候可以设置
ScrollView.smoothScrollTo(0,20);
这句话可以放ListView设置完Adapter之后。
PPS: 若是 「ScrollView.smoothScrollTo(0,20);」无效时,需要在代码里去掉listview的焦点,即 listView.setFocusable(false);
希望可以帮到你~