xmuSistone / VerticalSlideFragment

vertical slide to switch to the next fragment page, looks like vertical viewpager
1.61k stars 305 forks source link

CustScrollView嵌套CustListView无法正常滑动 #24

Closed susuzero closed 7 years ago

susuzero commented 7 years ago

你好,很喜欢这个组件,但在使用中遇到一些问题 现有Fragment1跟Fragment2,在Fragment2中使用CustScrollView嵌套了CustListView 且复写了CustListView的如下方法 @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } 然后,就无法正常滑动了,请问该如何解决

xmuSistone commented 7 years ago

你这样写,完全禁止了ListView的懒加载功能,违背了ListView的设计初衷。你想要一次性加载,可以直接LinearLayout.addView取代ListView了。 如果页面中是纯粹的ListView,该仓库中已经存在了一个CustListView,你可以试试

xmuSistone commented 7 years ago

如果你外层用了CustScrollView,里面就不要用CustListView了。你自己定义一个ListVIew,不做任何touch分发拦截,onMeasure按你的样子写,CustScrollView一样可以正常工作的。

之所以不能正常工作了,是因为CustScrollVIew和CustListView对Touch的处理已经混乱了

susuzero commented 7 years ago

@xmuSistone 谢谢指点

susuzero commented 7 years ago

@xmuSistone 我自定义了一个ListView,然后在dispatchTouchEvent中return false,但是依然无法正常工作。请问能否给出关键代码,对事件分发不是特别理解,惭愧!

xmuSistone commented 7 years ago

直接用custlistview就好

susuzero commented 7 years ago

目前外层是一个CustScrollView,内层包含好几个ListView和其他非滑动控件,不考虑懒加载。直接使用custListView不满足需求,且改成LinearLayout.addView的方式工作量较大,实在不知如何解决了。