gpt4 book ai didi

java - Android Wear GridViewPager 手势

转载 作者:太空宇宙 更新时间:2023-11-04 13:14:35 25 4
gpt4 key购买 nike

我有 2 行 3 列的 GridViewPager。作为其默认行为,如果您在任何页面上向下滑动,它将导航到下一行的第一页。但我想覆盖该行为并停止在第一行第二列和第三列上向下滑动。

我尝试放置 2 行一列 GridViewPager 并为第一个单元格放置一个 ViewPager 以及使用 1 行 3 列 GridViewPager 并在第一个单元格中放置另一个 1 列 2 行 GridViewPager。两者都有类似的滚动问题。以下代码是我用来更改滚动行为的自定义 GridViewPager。

GridViewPager 应该只能如下图所示滑动。 Swipe Example Image

public class GridViewPagerCustom extends GridViewPager {
private GestureDetector mGestureDetector;
private int px = 0;
private int py = 0;

public int getPy() {
return py;
}

public void setPy(int py) {
this.py = py;
}

public int getPx() {
return selectedPage;
}

public void setPx(int px) {
this.px = px;
}

public GridViewPagerCustom(Context context, AttributeSet attrs) {
super(context, attrs);
mGestureDetector = new GestureDetector(context, new YScrollDetector());
setFadingEdgeLength(0);
}

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return super.onInterceptTouchEvent(ev) && mGestureDetector.onTouchEvent(ev);
}

// Return false if we're scrolling in the x direction
class YScrollDetector extends GestureDetector.SimpleOnGestureListener {
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
return (getPx() == 0 && getPy() == 0) ? Math.abs(distanceY) > Math.abs(distanceX) : false;
}
}
}

最佳答案

您应该能够通过覆盖canScrollVertically(int Direction)来控制它;我还没有尝试过,但听起来是正确的地方。也就是说,请小心更改该行为,因为它将与使用此组件的其他应用程序不同,并且您的应用程序的用户可能会感到困惑,假设没有其他行等。

关于java - Android Wear GridViewPager 手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33668483/

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