美文网首页
自定义可适应ScrollView的ListView

自定义可适应ScrollView的ListView

作者: justin_pan | 来源:发表于2016-07-27 11:08 被阅读46次

    自定义可适应ScrollView的ListView
    这个方法和上面的方法是异曲同工,方法3是自定义了LinearLayout以取代ListView的功能,但如果我脾气就是倔,就是要用ListView怎么办?那就只好自定义一个类继承自ListView,通过重写其onMeasure方法,达到对ScrollView适配的效果。
    下面是继承了ListView的自定义类:

    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);
    }
    }

    三个构造方法完全不用动,只要重写onMeasure方法,需要改动的地方比起方法3少了不是一点半点…
    在xml布局中和Activty中使用的ListView改成这个自定义ListView就行了。代码就省了吧…
    这个方法和方法1有一个同样的毛病,就是默认显示的首项是ListView,需要手动把ScrollView滚动至最顶端。
    

    sv = (ScrollView) findViewById(R.id.act_solution_4_sv);
    sv.smoothScrollTo(0, 0);

    相关文章

      网友评论

          本文标题:自定义可适应ScrollView的ListView

          本文链接:https://www.haomeiwen.com/subject/vrsojttx.html