3

我发现了很多使用 android 中的 xml 文件创建选项卡的示例,但我需要以编程方式创建多个选项卡。请指导我。

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

        <TextView
            android:tag="tab0"
            android:text="Tab 1"
            android:background="@android:drawable/btn_star_big_on"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            />
        <TextView
            android:tag="tab1"
            android:text="Tab 2"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            />
        <TextView
            android:tag="tab2"
            android:text="Tab 3"
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            />

    </TabWidget>

我怎样才能以编程方式而不是上面的 xml 代码来编写它。

4

2 回答 2

4

检查带有滑动示例的选项卡。它实现了没有 xml 文件的选项卡。

但是每个片段都有 XML 布局。您可以根据您的要求删除它。

于 2013-11-13T09:47:29.840 回答
0

在您的 TabActivity 中:

private void addTab(String labelId, int drawableId, Class<?> c)
{
  Intent intent=new Intent(this, c);
  TabHost.TabSpec spec=Your_TabHost.newTabSpec("tab"+labelId);

  View tabIndicator=LayoutInflater.from(this).inflate(R.layout.tab_indicator, getTabWidget(), false);
  TextView title=(TextView)tabIndicator.findViewById(R.id.title);
  title.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 12);
  title.setText(labelId);
  ImageView icon=(ImageView)tabIndicator.findViewById(R.id.icon);
  icon.setImageResource(drawableId);

  spec.setIndicator(tabIndicator);
  spec.setContent(intent);
  Your_TabHost.addTab(spec);
}

通过这种方式添加选项卡(仍在 TabActivity 中):

addTab("Your tab title", R.drawable.your_tab_icon, SomeActivity.class);

但我仍然强烈建议您在低于 4.0 的 android中使用ActionBarSherlock ,因为 Tab 已被弃用...

于 2013-11-13T10:22:46.953 回答