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);
}
}
相同点: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