2

我的 TabWidget 不会显示,即使它显示在 Eclipse 图形编辑器中。我找不到任何理由。为什么我的标签栏不显示?

伊姆古尔

模拟器

伊姆古尔

活动的 XML 源:http: //pastebin.com/Au9XFXPa

活动摘录:

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
        </TabWidget>

Android lint 的结果:

$ lint.bat res/layout/activity_calculator.xml
Scanning Catalyst: .
No issues found.
4

2 回答 2

5

如果没有实际代码来说明您的活动是如何实现的,很难说,但似乎您需要调用setContent()您的TabHost

    TabHost tabs = (TabHost)findViewById(R.id.tabhost);
    tabs.setup();

    // Calculator
    TabHost.TabSpec calculatorTab = tabs.newTabSpec("calculator");
    calculatorTab.setContent(R.id.calculator);
    calculatorTab.setIndicator("Calculator");
    tabs.addTab(calculatorTab);

    // Home
    TabHost.TabSpec homeTab = tabs.newTabSpec("home");
    homeTab.setContent(R.id.home);
    tabs.addTab(homeTab);

    // Home
    TabHost.TabSpec faqTab = tabs.newTabSpec("faq");
    faqTab.setContent(R.id.faq);
    tabs.addTab(faqTab);

这应该给你的想法。

于 2013-05-21T04:54:50.127 回答
0

尝试使用Fragementsinside TabHost,如下所示:

 <TabHost
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0"
            android:orientation="horizontal" />

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="0" />

        <android.support.v4.view.ViewPager
            android:id="@+id/viewpager"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1" />
    </LinearLayout>
</TabHost>

然后通过执行以下操作初始化您的选项卡:

/**
 * Initialise the Tab Host
 */
private void initialiseTabHost(Bundle args) {
    mTabHost = (TabHost) findViewById(android.R.id.tabhost);
    mTabHost.setup();
    TabInfo tabInfo = null;
    RedeemActivity.AddTab(this, this.mTabHost,
            this.mTabHost.newTabSpec("Tab1").setIndicator("1"),
            (tabInfo = new TabInfo("Tab1", Activity1.class, args)));
    this.mapTabInfo.put(tabInfo.tag, tabInfo);
    RedeemActivity.AddTab(this, this.mTabHost,
            this.mTabHost.newTabSpec("Tab2").setIndicator("2"),
            (tabInfo = new TabInfo("Tab2", Activity2.class, args)));
    this.mapTabInfo.put(tabInfo.tag, tabInfo);
    RedeemActivity.AddTab(this, this.mTabHost,
            this.mTabHost.newTabSpec("Tab3").setIndicator("3"),
            (tabInfo = new TabInfo("Tab3", Activity3.class, args)));
    this.mapTabInfo.put(tabInfo.tag, tabInfo);
    // Default to first tab
    // this.onTabChanged("Tab1");
    //
    mTabHost.setOnTabChangedListener(this);
}
于 2013-05-21T05:04:12.507 回答