gpt4 book ai didi

android - 滑动 ViewPager 时禁用 ListView 滚动

转载 作者:可可西里 更新时间:2023-11-01 19:06:56 26 4
gpt4 key购买 nike

有没有办法在滚动 ViewPager 项目时锁定 ListView 的垂直滚动?或者改变 ViewPager 的水平滚动灵敏度?

谢谢。

最后编辑

这是我更新的解决方案。感谢 Masoud Dadashi 的回复,您的评论终于让我找到了解决问题的方法。

这是我的自定义 ListView 类:

public class FolderListView extends ListView {

private float xDistance, yDistance, lastX, lastY;

// If built programmatically
public FolderListView(Context context) {
super(context);
// init();
}

// This example uses this method since being built from XML
public FolderListView(Context context, AttributeSet attrs) {
super(context, attrs);
// init();
}

// Build from XML layout
public FolderListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// init();
}

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {

switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
xDistance = yDistance = 0f;
lastX = ev.getX();
lastY = ev.getY();
break;
case MotionEvent.ACTION_MOVE:
final float curX = ev.getX();
final float curY = ev.getY();
xDistance += Math.abs(curX - lastX);
yDistance += Math.abs(curY - lastY);
lastX = curX;
lastY = curY;
if (xDistance > yDistance)
return false;
}

return super.onInterceptTouchEvent(ev);

}
}

最佳答案

是的。创建另一个从 ListView 扩展的 customListView 类并重写它的 dispatchTouchEvent 事件处理程序,如下所示:

@Override
public boolean dispatchTouchEvent(MotionEvent ev){
if(ev.getAction()==MotionEvent.ACTION_MOVE)
return true;
return super.dispatchTouchEvent(ev);
}

然后改用这个 customListView

关于android - 滑动 ViewPager 时禁用 ListView 滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17853312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com