自定义的ListView,用于解决ScrollView内嵌ListView的问题。

如题,上代码~

/**
 * 自定义的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);

希望可以帮到你~

你可能感兴趣的:(自定义的ListView,用于解决ScrollView内嵌ListView的问题。)