0

私は最小 SDK レベル 7 でアプリを開発しています。そのため、サポート ライブラリと ActionBarActivity を使用して適切な ActionBar を作成していますが、ページのレイアウトにはアクティビティの下部に 4 つのタブが含まれており、すでに ActionBarActivity を拡張しているため、 TabActivity を拡張できません。問題は私が書くときです

public class HomePageActivity extends ActionBarActivity {
private TabHost mTabHost;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_homepage);

    mTabHost = (TabHost) findViewById(android.R.id.tabhost);
    mTabHost.setup();

    TabHost.TabSpec tab1 = mTabHost.newTabSpec("TAB1");
    tab1.setIndicator("TAB 1");

    Intent popularContentIntent = new Intent().setClass(this, GuideActivity.class);
    tab1.setContent(popularContentIntent);
    mTabHost.addTab(tab1);

タブホストにタブを追加しようとすると、「'public void setup(LocalActivityManager activityGroup) を呼び出すのを忘れましたか?'」というエラーが表示されます。ビューの ID を tab.setContent(..) のように tab.setContent(R.id.tab1) に設定しようとして、xml に ID tab1 のビューがあると、ビューに次のエラーが表示されます。そのような数は見つかりません。

私のレイアウト:

<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

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

    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@android:id/tabs"
        android:layout_alignParentTop="true" />

    <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true" >

        </Button>
    </TabWidget>
</RelativeLayout>

タブとアクションバーを同時にレイアウトすることは何とか可能ですか? 私は何を間違っていますか?他の選択肢は何ですか?どうもありがとう!

4

1 に答える 1

1

TabActivityは API レベル 13 で廃止されました。更新されたドキュメントandroid.support.v4.app.FragmentTabHostでは、代わりに使用することを推奨しています。

さらに良い方法は、ここでViewPager提供されているサンプルを使用することです。

于 2013-09-09T17:59:20.047 に答える