我有一个在Google Play上发布的大型已发布的铁路时刻表应用程序,现在我也计划整合公交时刻表。我的问题是这样的:
现在,我想要实现主屏幕,因此它将具有可滑动的标签,并且标签将是A,B和C.我从未真正使用过那种标签,所以我的知识不是那么深,但是,我提出了一个解决方案,这确实有用,但它需要大量的重新编码(请记住,我的应用程序是在一年前发布的),因为我从来没有真正准备过碎片。我做的事情很THIS,而且效果非常好。但是,这意味着主屏幕应该是FragmentActivity,这很好,我可以处理。但是我不能提供A,B和C活动作为标签,它只接受片段。
问题是:我可以将已经编码的活动作为片段补充,所以我可以在它们之间滑动吗?有没有我不知道的包装机制?你能告诉我的任何其他解决方案吗?只要指出我的方向,我会做其余的事情。或者,我是谁,并且必须从头开始重新编码?没问题,如果是这样的话,我很乐意避开它。
先谢谢,欢呼。 :)
答案 0 :(得分:1)
您可以做的是将片段包装在Activity中。如果您的Activity中包含多个类,那么这将是更好的选择。否则,我会改为使用wangyif2's suggestion。
无论如何,你想要做前者:
public class SampleActivity extends Activity {
...
public static class SampleFragment extends Fragment {
...
}
}
当你最终在ActionBar
中初始化所有这些时final ActionBar bar = getActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
bar.addTab(bar.newTab()
.setText("Sample")
.setTabListener(new TabListener<SampleActivity.SampleFragment>(
this, "sample", SampleActivity.SampleFragment)));
我建议从API 14+样本中查看API演示。 FragmentTabs中有一个很好的例子(com.example.android.apis.app.FragmentTabs)。
答案 1 :(得分:1)
谢谢你们的建议,我确实尝试了wangyif2建议的方法,它在代码中产生了太多的开销,因为我做了一些特定的事情。
我将查看一些演示,但我想我会从头开始重新编码,这似乎是目前最干净的解决方案。
答案 2 :(得分:0)
而不是原始的活动A,B,C扩展SherlockActivity,只需更改它们以扩展SherlockFragments,并将它们提供给选项卡。
显然,你必须解决一些编译错误,即活动生命周期和fragment lifecycle之间的差异,但是一旦修复它们,你就应该好了。