我有一个TabLayout
或TabHost
的设计,你想要考虑。假设这是标签 -
Tab1 | Tab2 | Tab3 | Tab4 | Tab5
接下来将采取行动 -
有关如何解决此问题的任何想法? 在此先感谢!!
更新:我使用的解决方案
我试过这个,但不得不做很多自定义。所以我在中间停了下来,因为这是很多工作。另外,我做的另一种方法是在TabLayout
上放置一个与Tab3完全相同位置的视图,点击View
我使叠加视图可见。
答案 0 :(得分:0)
ViewPager
不适用于此用例。标签会自动映射到ViewPager
中的相应元素。但是,我在这里看到它的工作方式。
TranslucentOverlayView
Visibility.GONE
覆盖整个ViewPager
。fragment2
的重复克隆,选择tab3
后,TranslucentOverlayView
可见。这确实意味着您将并排有fragment2
两个独立的实例。答案 1 :(得分:0)
正如@ZakTaccardi所说,ViewPager
不是为此设计的。
但是,我会尝试创建一个包含5页的FragmentPagerAdapter
。我的意思是,getCount()
应该返回5.如果当前索引是2,那么您应该返回当前在屏幕上的实例。这意味着,您的适配器应该知道当前页面是什么。您可以使用ViewPager
s onPageChangeListener
让适配器知道当前页面是什么。要检索实例,请使用FragmentManager
。不要在适配器中存储片段的引用,因为这会导致内存泄漏。这是为了在您选择选项卡3时防止重复的片段。
要显示叠加层,请在View
之上实施ViewPager
,并在位置为2时在onPageSelected()
的{{1}}回调中显示。隐藏它这个职位不是2。