【问题标题】:How to stop Android ViewFlipper from looping?如何阻止 Android ViewFlipper 循环播放?
【发布时间】:2012-12-26 21:19:47
【问题描述】:

我将 ViewFlipper 设置为每 5 秒自动翻转一次。省略一些细节,它看起来像这样并且工作正常:

ViewFlipper flipper = (ViewFlipper) findViewById(R.id.myflipperid);

flipper.setFlipInterval(5000);                              
flipper.setInAnimation(inFromRightAnimation());
flipper.setOutAnimation(outToLeftAnimation());

flipper.startFlipping();

但是,我有一个案例,我希望自动翻转在最后一个视图处停止,而不是循环重新开始。 ViewFlipper 或其继承的任何类似乎都没有循环控制方法。

如何让 ViewFlipper 在到达最后一个子视图时停止循环遍历其子视图?

注意:here 给出的答案不适用于我的情况,因为我需要在列表末尾捕获 ViewFlipper,即不依赖于用户输入。谢谢。

【问题讨论】:

    标签: android android-animation android-view


    【解决方案1】:

    这是我使用的解决方案。正如here 建议的那样,诀窍是监听动画结束事件,然后检查脚蹼是否在最后一个视图上。

    flipper.getInAnimation().setAnimationListener(new Animation.AnimationListener() {
    
        public void onAnimationStart(Animation animation) {}
        public void onAnimationRepeat(Animation animation) {}
        public void onAnimationEnd(Animation animation) {
    
            int displayedChild = flipper.getDisplayedChild();
            int childCount = flipper.getChildCount();
    
            if (displayedChild == childCount - 1) {
                flipper.stopFlipping();
            }
        }
    });
    

    感谢您的回答。

    【讨论】:

    • 您的示例中的“flipperWall”是什么?
    • 对不起,我遗漏了声明。在此示例中,flipperWall 只是一个视图翻转器,如下所示:ViewFlipper flipperWall;。您还需要使用 findViewById() 或通过编程方式从 XML 文件初始化它。祝你好运!
    【解决方案2】:

    我自己没有尝试过,但我希望这会有所帮助。

    首先,尝试收听 viewflipper 的翻转事件。 由于您使用的是动画。您可以使用此处发布的解决方案:https://stackoverflow.com/a/3813179/1594522

    然后,onAnimationEnd(),你可以检查 viewflipper 是否在它的最后一个子视图上。 如果它已经在其最后一个子视图中,则调用 Flipper.stopFlipping()。

    希望对您有所帮助! :)

    【讨论】:

    • 是的,这正是我昨天所做的。你在发布答案时击败了我,所以我会给你打勾!我的实际解决方案发布在下面。
    【解决方案3】:

    只要得到列表的大小,然后在if条件下,说

    flipper.stopFlipping()
    

    希望它可以这样工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-16
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      相关资源
      最近更新 更多