2015-10-26 35 views
0

我对我在这里应该做的事情有点困惑,所以希望有人能指出我正确的方向。从导航抽屉中跳到ViewPager中的特定页面

我有一个Viewpager,它有大约25页,我可以左右滑动通过它罚款。我还有一个导航抽屉,我想用它跳转到25页内的特定页面。即说第1,5,15和25.

我一直在看看setCurrentItem()getCurrentItem()方法,但不知道如何实现它们,或者如果这就是我应该使用的。

我的想法是通过switch语句在onNavigationDrawerItemSelected()方法内使用setCurrenItem()。这会起作用吗?如果是这样,我认为我需要给我的每个片段一个int参数来指定每个页面,然后使用setCurrentItem()

任何意见将不胜感激!

回答

1

ViewPagersetCurrentItem方法不是抽象的,你不必实现它。只要您检测到点击NavigationDrawer菜单项,就从您的活动/片段/等中调用它。但是,您可能想要滚动动画。在这种情况下,您需要提供您的自定义滚轮实现平滑滚动效果:

ViewPager setCurrentItem(pageId, true) does NOT smoothscroll

页面选择说到你应该知道哪些片段片段是在其寻呼机页,所以这不应该是一个问题好。

+0

谢谢:)什么是索引所有页面(片段),然后拿起它们的最好方法?我不确定如何给页面设置一个索引,然后使用setCurrent方法来选择它。我只是给每个页面的索引说1-25,然后使用setCurrent与我想要去的页索引的参数? – KT79

+0

很难说,如果不知道你在做什么很刺激,但索引从0到24的页面似乎是合理的(你可能会保留它在集合无论如何,并检索,如果从该集合在适配器insantiateItem)。您可以编写一些帮助功能来帮助您搜索项目集合以获取所需的项目位置。 – Than

+0

大有道理,非常感谢@Than! – KT79

1

是的,@ KT79,这实际上是在ViewPager中产生“跳跃”效果的唯一方法。