gpt4 book ai didi

android - 使用嵌套的 viewpager 将触摸事件委托(delegate)给父级

转载 作者:太空狗 更新时间:2023-10-29 12:42:20 24 4
gpt4 key购买 nike

我有一个带有嵌套 viewpager 的应用程序。 Top level viewpager 是选项卡布局的 ViewGroup,子 pager 只是滑动一些图像。

我想要实现的是内部 ViewPager 确实将触摸事件完全委托(delegate)给父 viewpager。我只想用按钮滚动它的内容。

为此,我为内部 ViewPagers 创建了一个子类:


public class NonTouchViewPager extends ViewPager {

public NonTouchViewPager(Context context) {
super(context);
}

public NonTouchViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return false;
}

@Override
public boolean onTouchEvent(MotionEvent ev) {
return false;
}
}

但如果内部 ViewPager 位于它的边缘之一,它只会委托(delegate)触摸事件。因此,如果 ViewPager 在左侧,我可以向左滑动父寻呼机,如果内部寻呼机在右侧,我可以向右滑动父寻呼机。在任何其他情况下,触摸事件只是被消耗并且不会移动父级。

如何实现触摸事件总是委托(delegate)给父viewpager?

提前致谢,麦克法兰

最佳答案

我知道这是旧的,但我找到了解决方案。这比我预期的要简单得多。

public class NonSwipeableViewPager extends ViewPager {

public NonSwipeableViewPager(Context context, AttributeSet attrs) {
super(context, attrs);

}

@Override
public boolean canScrollHorizontally(int direction) {
return false;
}

}

关于android - 使用嵌套的 viewpager 将触摸事件委托(delegate)给父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23738915/

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