ViewPager的OffScreen页面状态

时间:2013-11-12 11:31:26

标签: android android-viewpager

我有ViewPager,它有多个片段。每个片段都有一个Chrnometer,它在Page / Fragment Activity上显示时间。

  1. 每个片段都会覆盖onPause和onResume方法以停止和启动Chronometer。
  2. 我意识到OffScreen页面上的天文台表并没有停止。
  3. 仅在屏幕外碎片发生这种情况。
  4. OffScreen页面的活动状态是否未发生变化?
  5. 在这个问题上胜任。感谢您对此问题的任何帮助。以下是代码段

    public void onPause() {
        super.onPause();
    
        timeWhenStopped = chronometer.getBase() - SystemClock.elapsedRealtime();
        chronometer.stop();
    
    }
    
    public void onResume() {
        super.onResume();
    
        chronometer.setBase(SystemClock.elapsedRealtime() + timeWhenStopped);
        chronometer.start();
    
    }
    

1 个答案:

答案 0 :(得分:0)

您正在查看片段和片段的生命周期(onAttach,onPause ...)

要解决问题,您还需要了解ViewPager< - > FragmentStatePagerAdapter, 以及ViewPager如何在UI上的滑动事件上委托UI更改。

专注于ViewPager中的“监听器”,并将对StopChronometer的调用插入到pagechangeListener的实现中。

未通过swipedPage ...

在委派的事件处理程序中调用OnPause

但是,如果您了解这3个类的协作,并且可能会查看使用这些类的某些github示例或查看其中一个ADT示例ViewPager应用程序,那么您应该可以将它们连接起来以便您可以插入将计时器代码放入调用链中由页面滑动产生的正确位置。