2

Eclipse グラフィカル エディターに表示される場合でも、TabWidget が表示されません。理由が見つかりません。タブ バーが表示されないのはなぜですか?

エクリプス

イムグル

エミュレータ

イムグル

アクティビティの 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 に答える