【发布时间】:2020-06-08 20:41:22
【问题描述】:
我们都被告知不要嵌套包含滚动机制的视图。然而,在最新的 Android 版本 (5.0) 中,Phone 应用程序引起了我的注意,ListView 内部似乎是 ScrollView。
真正让我感兴趣的是滚动机制从ScrollView 无缝切换到ListView。
请注意,在实际的 ListView 开始滚动之前,选项卡上方的内容会被推到视野之外。
我试过自己复制这个,但最终没有成功。这是我采用的基本方法...
使用单个连续触摸事件(不抬起手指)...
随着用户滚动,ListView 会慢慢覆盖ImageView。一旦ImageView 100% 被覆盖并且ListView 占据整个屏幕,ListView 开始滚动。
我目前正在ListView 上收听触摸事件,如果已到达顶部,请在ListView 上致电requestDisallowInterceptTouchEvent,即
@Override
public boolean onTouch(View v, MotionEvent event) {
if (listViewAtTop) {
v.requestDisallowInterceptTouchEvent(true);
} else {
v.requestDisallowInterceptTouchEvent(false);
}
return false;
}
只有当您抬起手指并继续滚动时,切换滚动上下文才有效。
是否有不同的方法可以达到预期的效果?
【问题讨论】: