【问题标题】:pinch zoom doesn't zoom out on move to next fragment page捏缩放不会缩小移动到下一个片段页面
【发布时间】:2015-05-25 17:14:27
【问题描述】:

我已经用这个polidea Zoomview完成了捏缩放。我已经在片段页面中实现了这个捏缩放代码。

ZoomView zoomView;

//inside onCreateView method

zoomView= new ZoomView(getActivity());
zoomView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

zoomView.addView(gridTable);
zoomView.setRotationY(180);
gridviewlayout.addView(zoomView);

zoomview jar

捏放大和缩小在gridview表格页面中工作。但是如果我放大页面然后滚动到下一个片段页面。之后当我返回上一个片段页面时,页面仍处于缩放状态.

当我移动到下一个片段页面时,我正在尝试将页面重置为正常状态。

我搜索了很多样本​​。但一切都与 Imageview 有关。我没有得到任何用于在带有布局的片段中捏放大的样本。

任何人都可以帮助我。谢谢。

【问题讨论】:

  • 再解释一下,你用的是viewpager吗?每个fragment中是否有gridview?
  • 只有上面的代码我可以做一个捏缩放。但是在移动到下一个片段页面时不能缩小。 @mmlooloo
  • scroll to next fragment 你是如何实现的?你在用什么小部件?
  • @mmlooloo 抱歉 viewpager 在那里。我在单独的类中使用 viewpager 来连接所有三个片段页面。

标签: android pinchzoom


【解决方案1】:

将以下代码添加到您的片段中:

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if(!isVisibleToUser){
        if(mZoomView != null)mZoomView.zoomTo(1,0,0);
    }
}

【讨论】:

  • 你能详细说明一下吗?我听不懂。请用至少一个片段的代码解释一下。
  • 每个片段必须实现 ZoomViewListener 接口,然后在调用 void onZoomStarted(float zoom, float zoomx, float zoomy); 时将这些值存储在某处,然后在 onResume 检查这些值,如果这些值不是假的 (-1) 调用`zoomTo(具有这些值的最终浮动缩放、最终浮动 x、最终浮动 y)`。
  • 您能否创建一个示例项目,其中包含例如 3 个片段与您的问题并将其上传到 github,然后我将尝试解决它,并将在 1 或 2 天内将结果通过电子邮件发送给您。
  • 我不知道如何在github上传。而且我今天正在尝试完成这项任务。如果你能详细解释一个片段的代码对我来说足够了。
  • 我将在 5 分钟内将整个项目发布到 github 上。
【解决方案2】:

检查此链接...

ViewPager with detailed fragment lifecycle

该教程显示为每个片段创建暂停和恢复侦听器的侦听器。所以,每当你改变到其他片段时,你都可以在片段的onPauseListener中调用缩小。本教程适合我。

希望这对你有用。

【讨论】:

    【解决方案3】:

    覆盖此方法:

    setPrimaryItem(ViewGroup container, int position, Object object)
    

    每次更改位置时都会调用此方法。现在您知道 是可见片段。这意味着你也知道什么是不可见的(是的,我是夏洛克)。现在您可以设置所有其他片段的缩放值。(可能比较以前的索引和新索引?)

    您最好保留对片段的引用并为它们实现一些方法,例如reset() or setZoom(float)

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2014-01-28
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 2013-12-12
      • 1970-01-01
      • 2012-09-07
      • 1970-01-01
      • 2019-12-30
      相关资源
      最近更新 更多