我正在尝试在布局中创建选项卡。我发现了很多使用 TabWidget
、TabHost
的示例和教程,但它们都涉及以下之一:
- 在活动中编写Java代码
- 为每个选项卡分别创建活动
- 为每个选项卡分别创建片段
选项卡内的内容是静态的,所以我应该只需将所有内容以纯XML形式包含在布局中。
是否有任何方法实现这一点?
我正在尝试在布局中创建选项卡。我发现了很多使用 TabWidget
、TabHost
的示例和教程,但它们都涉及以下之一:
选项卡内的内容是静态的,所以我应该只需将所有内容以纯XML形式包含在布局中。
是否有任何方法实现这一点?
TabHost
并创建选项卡。即使没有使用片段,您也可以为选项卡设置静态布局,但仍需要在Java中进行设置。TabWidget
将不知道哪个布局对应于哪个选项卡,也无法正常工作。因此你需要编写一些代码。<TabHost android:id="@+id/tab_host"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TabWidget android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/tab_one_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<LinearLayout
android:id="@+id/tab_two_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</FrameLayout>
</LinearLayout>
</TabHost>
Java 代码(放置在您设置布局的任何位置):
TabHost host = (TabHost)findViewById(R.id.tab_host);
host.setup();
TabSpec spec = host.newTabSpec("Tab One");
spec.setContent(R.id.tab_one_container);
spec.setIndicator("Tab One");
host.addTab(spec);
spec = host.newTabSpec("Tab Two");
spec.setContent(R.id.tab_two_container);
spec.setIndicator("Tab Two");
host.addTab(spec);