使用支持库(ActionBarSherlock)在Android 4中嵌套选项卡

Mic*_*inn 13 tabs android actionbarsherlock viewpagerindicator

我遇到了严重的问题,在从Android 2.1上运行的应用程序中运行三层嵌套选项卡,看起来像Android 4(使用支持库片段).

目标

  • 应用程序应该有一个ActionBar(工作,当前使用ActionBarSherlock)
  • 主屏幕上有3个固定标签,即使屏幕足够大,也不会移动到ActionBar中.这些标签中的第二个包含......
  • 当用户第一次登录时,从服务器加载的大约4个选项卡.每个都包含
  • 当用户第一次登录时,从服务器加载的大约10个可转换选项卡(如Play商店中).我的想法是使用ViewPagerIndicator,因为该库是由ActionBarSherlock的同一个人写的,它应该将问题降到最低.但我对这里的想法持开放态度.这些可跳转选项卡中的每一个都包含一些当前为片段的内容,但可以更改.

问题

当这是一个Android 2应用程序时,它只是使用嵌套的TabActivities,但这些不适用于所有Android 4的东西.我不明白怎么做这个,尤其是"你不能嵌套碎片"的限制令我头疼.此外,似乎每个Activity只能使用一个FragmentManager,所以我的想法是在每个第二行选项卡中都有一个不起作用(除第一个选项卡之外的所有选项卡都保持为空).如何以正确的方式做到这一点?

(请理解"使用不同的GUI设计"不是一种选择,因为这是客户要求的,他不会重新考虑)

Pau*_*rke 3

PagerAdapter不要求Fragments像孩子一样。您可以在其中扩展/管理您自己的自定义视图。所以你可以继续使用嵌套TabActivities。或者,您可以放在Fragments顶层,并Views在底层管理您自己的ViewPager

理论上,ViewFlipper如果您想将片段保留在ViewPager. 您必须使用LinearLayoutasButtons选项卡编写自己的代码,但这很容易。如果您正在寻找 Holo 外观,只需将样式设置为 ABS 中的样式即可。

另一种选择是TabHost不使用TabActivity. 您甚至可以将它与 Fragments 一起使用。请参阅此处的示例。

另请注意:如果您正在寻找 Google Play 风格的 ViewPagerIndicator,现在已包含在支持包中:PagerTitleStrip

我想你最好的选择是使用片段作为顶层,因为这将有助于减少内存消耗。

也就是说,

我必须说,这听起来是一个糟糕的 UI 模式。更糟糕的是,我们在其中谈论了很多Activity夸大的观点。您可能会在这里遇到内存问题,具体取决于所显示的内容。如果您将其放在底部,我建议大量使用ViewStubs和回收。ViewPager

继续尝试推动客户端使用 ActionBar旋转器模式作为顶层(主要 3 个选项卡),甚至考虑花哨的滑动抽屉模式。也许流畅的动画足以动摇他们的观点。

请他们参考官方设计网站,并展示流行导航模式的示例,例如 Gmail、YouTube、Google+、Evernote 等中的导航模式。我最近与一位客户打交道,要求使用与您所描述的完全相同的模式,经过几周的推动能够让他们相信超过 2 层的标签是不可接受的

您还可以向他们展示我的Google+耻辱墙页面,突出显示流行 Android 应用程序中使用的不良设计模式:Android UI Anti-Patterns。:-)