我正在創建一個在主屏幕上有三個選項卡的應用程序。每個選項卡我都將內容設置爲單獨的活動。我使用活動而不是片段的原因是因爲在其中一個選項卡中,我需要能夠使片段和嵌套片段不受支持。沒有TabActivity,ActivityGroup或LocalActivityManager的TabHost
起初,我是在擴展TabActivity來這麼做的,但後來我意識到它已被棄用,所以我開始環顧四周。我發現有人建議在這裏使用一個ActivityGroup,但是......也被棄用。
看來StackExchange上的所有解決方案對於我遇到的問題都包含棄用的功能。如Android: TabHost without TabActivity和Android - Tabhost working in Activity class
有什麼正確的方式來使用TabHost並允許選項卡包含碎片而不使用棄用的功能?
下面是我目前有
import android.app.ActivityGroup;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
public class HomeTabs extends ActivityGroup {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TabHost host = (TabHost)findViewById(android.R.id.tabhost);
LocalActivityManager mlam = new LocalActivityManager(this, false);
mlam.dispatchCreate(savedInstanceState);
host.setup(mlam);
TabSpec spec = host.newTabSpec("Home");
spec.setContent(new Intent(this, HomeActivity.class));
spec.setIndicator("Home");
host.addTab(spec);
spec = host.newTabSpec("Browse");
spec.setContent(new Intent(this, BrowseActivity.class));
spec.setIndicator("Browse");
host.addTab(spec);
spec = host.newTabSpec("About");
spec.setContent(new Intent(this, AboutActivity.class));
spec.setIndicator("About");
host.addTab(spec);
}
}
請參閱http://developer.android.com/reference/android/app/TabActivity.html – CommonsWare 2012-04-02 19:51:27
上顯示的TabActivity替換示例替換示例正在擴展FragementActivity,如果我使用它,我將無法在標籤內容中包含一個片段,因爲標籤內容本身就是一個片段,不能將它們嵌套在一起。 – 2012-04-02 19:57:14