gpt4 book ai didi

android - 如何在 ViewPager 中创建可缩放页面?

转载 作者:行者123 更新时间:2023-11-29 14:03:33 25 4
gpt4 key购买 nike

我想创建一个包含可缩放 View (例如网页)的 ViewPager。

我的问题是:

当用户缩放(缩放)显示的 View 时,ViewPager 不应移动到显示 View 左侧或右侧的页面,相反,我定义的平移方法应该适用于该 View 。我知道在 View 寻呼机中有一个 requestDisallowOnTouchIntercept 方法,但它似乎在任何地方都不起作用,而不是 onTouch 方法。

请提供一些有效的解决方案。

请勿发布 this link作为你的答案

最佳答案

如果不知道你是如何实现缩放 View 的,我无法给你一个确切的答案,但假设你有能力跟踪你的 View 是否被放大,你可以在触摸事件到达之前有选择地取消它们查看寻呼机。它看起来像这样:

boolean isZoomedIn;

viewPager.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
if (isZoomedIn)
{
// The view is zoomed in, so we want to handle this event
// before it gets to the ViewPager so the view can pan
// around freely.
return true;
}
else
{
// The view is zoomed out; let the ViewPager react normally.
return false;
}
}
});

您可以从那里变得更有趣,跟踪您的放大 View 是在最左边缘还是最右边缘,然后如果指针的运动分别向左或向右移动,则允许 ViewPager 的触摸事件正常完成。然后,您可以允许用户滑动到下一页,而不需要他们再次完全缩小。您可以通过 MotionEvent 对象的各种属性了解触摸是如何移动的。

您可能还想检查 event.getPointerCount() 并在它大于 1 时返回 True,这样 ViewPager 就不会在您执行缩放时四处移动。

跟踪和解释所有变量有点复杂,但它是相对简单的数学运算,结果归结为为您希望 ViewPager 忽略的事件返回 True,为您希望它使用react的事件返回 False。

关于android - 如何在 ViewPager 中创建可缩放页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8326697/

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