我已經創建了一個TabHost並將其分配給4個活動意圖,並且這些看起來很好。我唯一的問題是活動內容沒有顯示在我的tabhost視圖中的framelayout #tabcontent內。Android TabHost內容沒有顯示
我跟着官方的參考資料,並掃描了互聯網的解決方案,但我看不出什麼問題。
Log.v(「Activity」,「Reports」)記錄在ant中,因此它執行該活動。因此,我在我的ReportsActivity中猜測它導致問題的setContentView()。但我是新來的,所以我不知道。 (有沒有產生錯誤)
這是我tabhost
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@android:id/tabhost"
android:background="#FFFFFF">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="0" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5sp"
android:layout_weight="1" />
</LinearLayout>
</TabHost>
這是我在我的TabActivity
// Glob
Intent intent;
TabHost tabHost = getTabHost();
TabHost.TabSpec spec;
Resources res = getResources();
// Reports tab
intent = new Intent().setClass(this, ReportsActivity.class);
spec = tabHost.newTabSpec("reports")
.setIndicator(
res.getText(R.string.reports),
res.getDrawable(R.drawable.reports))
.setContent(intent);
tabHost.addTab(spec);
添加標籤,這是我的內容的活動(R.layout.reports =帶有文本視圖的線性佈局)
public class ReportsActivity extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.reports);
Log.v("Activity", "Reports");
}
}
TabSpec沒有addFlags方法,所以我嘗試在我的意圖上使用標誌,但仍然沒有顯示我的ReportsActivity LinearLayout中。 **編輯:**我的ReportsActivity是否應該擴展除默認Activity超類之外的其他任何活動? – Daniel 2012-01-02 11:58:35
如果我在我的xml中刪除TabWidget,FrameLayout突然顯示活動內容。我嘗試使用邊距來查看TabWidget是否與FrameLayout重疊,但情況並非如此(我認爲)。 TabWidget是否與此有關? – Daniel 2012-01-02 13:25:09
我沒有看到,你初始化了tabspec之外的意圖。 addFlag屬於意圖。看到我更正的答案。 – Dyonisos 2012-01-02 15:00:17