嘿,我正在開發Android應用程序,我想爲每個選項卡實現一個活動組。但由於Activity Group已被棄用,我必須使用Fragments。我搜索了最後幾天,並對該主題做了一些研究,但我仍然沒有得到它。下圖描述了我想要做的事情。我也是直接從iOS來的,我需要一些關於我的理論的反饋。Android Fragment vs. Activity Group
正如你可以看到每一個片段由一個片段的WebView的。當用戶點擊該WebView Fragment中的一個鏈接時 - 請求被捕獲,並且一個新的Fragment被替換,該碎片再次包含一個WebView並加載上一個Fragment中單擊的鏈接。用戶決定返回第一個片段並按下後退按鈕。
碎片應該以相反的順序從堆棧中彈出,直到他再次看到第一個碎片。理想情況下,每個片段都應該保存他的實例狀態,以便當用戶返回時WebView不需要再次加載站點。
我遇到過ActionBar Sherlock,它提供了有關碎片選項卡的示例。還有一個片段堆棧的例子。將這兩個示例結合起來應該是理想的,這樣每個選項卡都由一個片段堆棧組成。
我的代碼結構如下所示:
我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
將如何片段堆棧爲每個標籤應該是什麼樣子? 目前我有一個片段活動與每個選項卡內的片段。但我沒有達到我需要的邏輯。
這裏是我的代碼:(?還是有在網絡上的任何實例)My Fragment with WebView inside
我會很高興一些反饋和提示。我也對內存有一些擔憂 - 當用戶點擊並單擊並單擊並且內存必須將每個碎片保存在堆棧中時。
乾杯。
對於一個很好解釋的問題+1。 –
你有沒有找到一個解決這個問題的可靠解決方案? –