我遇到了严重的问题,让三层嵌套标签在Android 2.1上运行,看起来像Android 4(使用支持库片段)。
当这是一款Android 2应用时,它只是使用嵌套的TabActivities,但这些并不适用于所有Android 4的东西。我不明白怎么做这个,特别是“你不能嵌套碎片”限制让我头疼。此外,似乎每个Activity只能使用一个FragmentManager,所以我的想法是在每个第二行选项卡中都有一个不起作用(除第一个选项卡之外的所有选项卡都保持为空)。 如何以正确的方式做到这一点?
(请理解“使用不同的GUI设计”不是一种选择,因为这是客户要求的,他不会重新考虑)
答案 0 :(得分:3)
PagerAdapter
不需要Fragments
作为孩子。您可以在那里充气/管理自己的自定义视图。所以你可以继续使用嵌套的TabActivities
。或者,您可以将Fragments
置于顶层,并在底层Views
管理您自己的ViewPager
。
如果您想将片段保留在ViewFlipper
中,理论上也可以使用ViewPager
。您必须使用LinearLayout
作为标签编写自己的Buttons
,但这很容易。如果您正在寻找Holo外观,只需将样式设置为ABS中的样式。
另一种选择是在不使用TabHost
的情况下使用TabActivity
。你甚至可以将它与Fragments一起使用。请参阅示例here。
另请注意:如果您正在寻找Google Play风格的ViewPagerIndicator,那么现在已经包含在支持包中:PagerTitleStrip。
我认为你最好的选择是使用Fragments作为顶层,因为这将有助于内存消耗。
我必须说这听起来像一个糟糕的UI模式。更糟糕的是,我们在一个Activity
中讨论了很多夸大的观点。您可能会遇到内存问题,具体取决于显示的内容。如果您将ViewStubs
放在最底层,我建议大量使用ViewPager
并进行回收。
继续尝试推动客户端使用ActionBar 微调模式作为顶级(主要3个标签),甚至考虑花哨的滑动抽屉模式。也许平滑的动画足以影响他们的意见。
将他们推荐到官方设计网站,并展示流行导航模式的示例,例如Gmail,YouTube,Google +,Evernote等中的导航模式。我最近处理的客户请求您描述的完全相同的模式,之后几周的推动能够让他们相信,超过2层的标签是不可接受的。
您还可以向他们展示我的羞耻墙 Google+信息页,突出显示热门Android应用中使用的不良设计模式:Android UI Anti-Patterns。 : - )