2

我从 Android 开始,我想将标签添加到我现有的应用程序中。

现在我只有一个活动,其布局在 XML 文件中定义。我现在想添加其他选项卡。

我查了一下,在 Android 开发者网站上找到了http://developer.android.com/resources/tutorials/views/hello-tabwidget.html ;但是,它不使用 XML 来定义选项卡的布局。

那么,如何使用 XML 文件轻松添加选项卡,仅用于布局?

提前致谢。

4

3 回答 3

4

我查了一下,在 Android 开发者网站上找到了http://developer.android.com/resources/tutorials/views/hello-tabwidget.html ;但是,它不使用 XML 来定义选项卡的布局。

是的,它确实。见步骤#4。


更新

Google 重新组织了他们的文档并删除了本教程。TabWidget您可以在此示例项目中看到使用 XML 定义选项卡。

于 2011-03-06T00:51:04.730 回答
3

我遇到了 TabWidget 布局没有做我需要的情况,所以我用 ViewFlipper 和 RadioGroup 伪造了它。这样,我可以使用包含定义选项卡的内容(ViewFlipper 中的每个视图)(就像在 Farray 的答案中一样)。

选项卡本身就是 RadioGroup 中的 RadioButtons - 您只需在代码中有一个 OnCheckedChangeListener 并相应地设置 ViewFlipper 的显示子项。您可以在 XML 中定义 RadioButton 布局(使用文本或图像或其他)。

这是选项卡使用图像的伪布局:

<LinearLayout>
    <ViewFlipper android:id="@+id/viewFlipper">
        <include android:id="@+id/tab1Content" layout="@layout/tab1Layout" />
        <include android:id="@+id/tab2Content" layout="@layout/tab2Layout" />
        <include android:id="@+id/tab3Content" layout="@layout/tab3Layout" />
    </ViewFlipper>
    <LinearLayout>
        <RadioGroup android:id="@+id/radgroup1" android:orientation="horizontal">
          <RadioButton android:id="@+id/rad1" android:button="@drawable/tab1" />
          <RadioButton android:id="@+id/rad2" android:button="@drawable/tab2" />
          <RadioButton android:id="@+id/rad3" android:button="@drawable/tab3" />
        </RadioGroup>
    </LinearLayout>
</LinearLayout>

这是听众:

    private OnCheckedChangeListener onRadioButtonCheckedChanged = new OnCheckedChangeListener(){
    public void onCheckedChanged(RadioGroup group, int checkedId)
    {
        switch(checkedId)
        {
            case(R.id.rad2):
                viewFlipper.setDisplayedChild(1);
            break;
            case(R.id.rad3):
                viewFlipper.setDisplayedChild(2);
            break;
            default:
                viewFlipper.setDisplayedChild(0);
            break;
        }
    }
};
于 2011-03-06T01:40:19.503 回答
1

实现非常严格——您对TabWidget布局没有太多控制权。

如果您想创建自己的自定义选项卡,最好的办法是创建自定义布局并从您希望拥有这些“选项卡”的活动中调用它。您可以在 XML 中调用可重用布局,<include layout="@layout/my_tab_layout" />然后在可重用类中编写您自己的初始化代码。

于 2011-03-06T01:03:17.800 回答