NetScrollView 和ScrollView之间的异同点

来源:互联网 发布:flinders大学 知乎 编辑:程序博客网 时间:2024/06/08 19:22
NestScrollView与ScrollView的异同点


相同点:NestScrollView和ScrollView只能包含一个直接子节点,二者嵌套ListView都会出现滚动冲突,只出现第一行数据
     
二者嵌套ListView或者RecyclerView等其他的滑动view都会出现滚动冲突:最简单有效的解决办法,重新定义View的子类,重写里面的onMeasure(){}方法,网上一大堆
public class MyListView extends ListView {
    public MyListView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
        super.onMeasure(widthMeasureSpec, expandSpec);
    }
}

事实上 ,并不建议使用这个ScrollView或者NestScrollView嵌套别的滑动view,这样虽然能用上面的方法解决冲突问题,但是有可能导致内存溢出因为每个view加载的数据无限制多,如果服务器返回的每页数据特别多,将导致内存溢出可能造成ANR 我现在都使用RecyclerView的多布局实现整个页面的设计和布局,当然还有其他的方法,看个人喜好吧。

不同点:在design包下的文件中使用NestScrollView可以避免一些横屏滑动和竖屏滑动之间的冲突问题 通常情况下建议使用NestScrollView

0 0
原创粉丝点击