使用FragmentActivity+Fragment+FragmentTabHost实现底部标签栏
时间: 2024-01-04 16:02:39 浏览: 97
底部Tabbar两种实现(Fragment、TabActivity)
好的,我可以为您解答。首先,您需要在布局文件中添加一个FragmentTabHost控件,用于显示底部标签栏。然后,您需要在Activity中继承FragmentActivity类,并在onCreate方法中初始化FragmentTabHost控件。最后,您需要创建多个Fragment类,用于显示不同的内容,并通过FragmentTabHost控件将它们与底部标签栏关联起来。
以下是一份示例代码,供您参考:
1. 布局文件
```xml
<android.support.v4.app.FragmentTabHost
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</android.support.v4.app.FragmentTabHost>
```
2. Activity类
```java
public class MainActivity extends FragmentActivity {
private FragmentTabHost mTabHost;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTabHost = findViewById(android.R.id.tabhost);
mTabHost.setup(this, getSupportFragmentManager(), android.R.id.tabcontent);
mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("Tab 1"), Tab1Fragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("tab2").setIndicator("Tab 2"), Tab2Fragment.class, null);
mTabHost.addTab(mTabHost.newTabSpec("tab3").setIndicator("Tab 3"), Tab3Fragment.class, null);
}
}
```
3. Fragment类
```java
public class Tab1Fragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_tab1, container, false);
}
}
public class Tab2Fragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_tab2, container, false);
}
}
public class Tab3Fragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_tab3, container, false);
}
}
```
请注意,上述代码中的布局文件和Fragment类仅仅是示例,您需要根据自己的需求进行相应的修改。另外,由于使用了FragmentTabHost控件,因此需要引入support-v4库。
阅读全文