我从 Android 开始,我想将标签添加到我现有的应用程序中。
现在我只有一个活动,其布局在 XML 文件中定义。我现在想添加其他选项卡。
我查了一下,在 Android 开发者网站上找到了http://developer.android.com/resources/tutorials/views/hello-tabwidget.html ;但是,它不使用 XML 来定义选项卡的布局。
那么,如何使用 XML 文件轻松添加选项卡,仅用于布局?
提前致谢。
我从 Android 开始,我想将标签添加到我现有的应用程序中。
现在我只有一个活动,其布局在 XML 文件中定义。我现在想添加其他选项卡。
我查了一下,在 Android 开发者网站上找到了http://developer.android.com/resources/tutorials/views/hello-tabwidget.html ;但是,它不使用 XML 来定义选项卡的布局。
那么,如何使用 XML 文件轻松添加选项卡,仅用于布局?
提前致谢。
我查了一下,在 Android 开发者网站上找到了http://developer.android.com/resources/tutorials/views/hello-tabwidget.html ;但是,它不使用 XML 来定义选项卡的布局。
是的,它确实。见步骤#4。
更新
Google 重新组织了他们的文档并删除了本教程。TabWidget
您可以在此示例项目中看到使用 XML 定义选项卡。
我遇到了 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;
}
}
};
实现非常严格——您对TabWidget
布局没有太多控制权。
如果您想创建自己的自定义选项卡,最好的办法是创建自定义布局并从您希望拥有这些“选项卡”的活动中调用它。您可以在 XML 中调用可重用布局,<include layout="@layout/my_tab_layout" />
然后在可重用类中编写您自己的初始化代码。