使用TabHost的ActionBarActivity

时间:2013-09-09 17:44:03

标签: android android-actionbar android-tabhost android-tabs android-support-library

我正在开发一个应用程序,最低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添加到tabhost时的行。 如果我尝试在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>

是否有可能在某种程度上同时使用制表符和操作栏进行布局?我做错了什么?还有什么其他选择? 非常感谢!

1 个答案:

答案 0 :(得分:1)

API级别13中已弃用{p> TabActivity。更新的documentation建议改为使用android.support.v4.app.FragmentTabHost

更好的方法是使用ViewPager提供的here样本。