我正在开发一款Android应用程序,希望为每个选项卡实现一个Activity Group。但由于Activity Group已被弃用,因此必须使用Fragments。我在过去的几天里进行了搜索和研究,但仍然不理解。下面的图形描述了我想要做的事情。另外,我刚从iOS转过来,需要一些关于我的理论的反馈。
片段应该以相反的顺序弹出堆栈,直到再次看到第一个片段。理想情况下,每个片段都应该保存它的instancestate,这样当用户返回时,WebView不需要再次加载网站。
我遇到了ActionBar Sherlock,它提供了关于Fragments Tabs的示例。还有一个Fragment Stack的示例。将这两个示例结合起来,每个选项卡都包含一个Fragment Stack将是理想的。
我的代码结构如下:
我的TabHost片段
public class MyActivity extends SherlockFragmentActivity {
static TabHost mTabHost;
static TabManager mTabManager;
public static int THEME = R.style.Theme_Sherlock_Light;
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(THEME); //Used for theme switching in samples
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_tabs);
mTabHost = (TabHost)findViewById(android.R.id.tabhost);
mTabHost.setup();
mTabManager = new TabManager(this, mTabHost, R.id.myRealTabContent);
// adding some Fragment Tabs
mTabManager.addTab(mTabHost.newTabSpec(tabNames[i]).setIndicator(tabNames[i]),
FragmentStackSupport.CountingFragment.class, bundle);
if (savedInstanceState != null) {
mTabHost.setCurrentTabByTag(savedInstanceState.getString("tab"));
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("tab", mTabHost.getCurrentTabTag());
}
// defining the Tab Manager
每个选项卡的片段堆栈应该是什么样子? 目前,我有一个片段活动,每个选项卡内都有一个片段。但我没有实现我需要的逻辑。
这是我的代码:我的带有WebView的片段 我很高兴能得到一些反馈和提示(或者网上有任何示例吗?)。我也担心内存——当用户点击并不断点击时,内存必须保持每个片段在堆栈中。
干杯。