0

我正在开发一个应用程序,最低 sdk 级别为 7,这就是为什么我使用支持库和 ActionBarActivity 来拥有一个适当的 ActionBar,而且我的页面布局在活动底部包含四个选项卡,并且我已经扩展了 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)?'”。如果我尝试在 tab.setContent(..) 中设置视图的 id,如 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 回答