应该在哪里使用PageViewer?

时间:2014-08-08 09:40:02

标签: android android-activity android-fragments navigation android-viewpager

我已将 ViewPager Fragment 的数量实现为子项,此处每个子项覆盖自己onAttach, onCreateView, onViewCreated and setUserVisibleHint

在我的应用中,导航行为是随机的,每次都不按顺序排列。由于页面查看器执行缓存以加载额外的子项,这就是我的问题所在。我不确定何时应该初始化/释放子类的成员。

你们的建议,在这种情况下最好使用PageViwer,或者我应该为每个组件采用传统的活动流程。

3 个答案:

答案 0 :(得分:2)

ViewPager通常用于移动高效的水平项目导航。典型的用例是

  • 浏览相关项目(例如电子邮件,图片,专辑的歌曲等)
  • 在标签之间滑动
  • 在类似向导的活动中来回滑动

有关详细信息,请参阅有关Swipe Views Android Design pattern

的部分

关于生命周期,它基本上使用与任何其他Fragment相同的生命周期。唯一的区别是,生命周期方法可以稍后或早于您的预期调用,因为片段的缓存ViewPager实现。

  

我不确定何时应该初始化/释放子类的成员。

您基本上应该依赖两种方法:onStart()onStop()。在onStart()中,您可以创建类成员并初始化您想要的所有内容。在onStop()方法中,您应该取消初始化所有内容并删除您在onStart()中设置的所有侦听器。

方法setUserVisibleHint()独立于onStart()onStop()使用。你最好不要初始化或破坏那里的任何东西。您不能将其视为生命周期方法,因为它不是。只是为了给你一个提示,你的片段对用户是可见的。您可以在此处启动或停止动画,或请求数据更新或执行类似任务。这是此方法的唯一目的。

  

你们提出的建议是否优先使用   在这种情况下,PageViwer或我应该采用传统的活动流程   对于每个组件。

如果您的活动符合上述某一点,我建议您使用ViewPager。否则你可能会考虑其他选择。

更新:您很可能不会经常覆盖片段的onCreate()onDestroy()生命周期方法。您将使用onCreateView()onDestroyView()方法。在那里你可以实现所谓的静态初始化,初始化在片段仍然存活时不会改变。这是布局初始化和类似的任务。

答案 1 :(得分:1)

ViewPager用法

屏幕幻灯片是整个屏幕与另一个屏幕之间的过渡,对于设置向导或幻灯片等UI很常见。

如果你对Fragment有很好的了解,那么ViewPager就是实现的正确组件。 因为viewpager提供了一个可以添加片段运行时的地方。

例如。    如果要在项目中使用TabBar,则viewpager是正确的组件。因为它提供了一个可以添加Fragment运行时的地方。 Tabbar在Android应用程序中很常见。它提供了很多我们可以用来添加片段运行时的功能。 Facebook应用程序使用ViewPager来管理选项卡。 Viewpager提供了应用程序的流畅性。

您可以从此网址下载示例并检查您的要求是否符合

You can download the Example here

答案 2 :(得分:1)

ViewPager

  It is an widget 

  Allows the user to swipe left or right to see an entirely new screen. 

  Easy  to show the user multiple tabs

  Dynamically add and remove pages (or tabs) at anytime.

阅读更多内容:http://architects.dzone.com/articles/android-tutorial-using