如何使用Fragment建立TabActivity



在Android应用开发中,`Fragment`是Android SDK提供的一种组件,它允许你在单个活动中包含多个可重用的UI部分。`TabActivity`则是一种常见的界面设计,用于展示多个互相独立但相关的视图,通常通过标签来切换。在Android 3.0(API级别11)之后,`TabHost`和`TabWidget`逐渐被`Fragment`和`ActionBar`(或`Toolbar`)的组合所取代,因为这种方式提供了更灵活和强大的界面设计。下面将详细介绍如何使用`Fragment`来创建一个`TabActivity`。 我们需要设置项目的基本结构。在Android Studio中,创建一个新的Android项目,并选择"Empty Activity"模板。确保你的`minSdkVersion`至少为11,因为`Fragment`的全面支持从API级别11开始。 1. **配置AndroidManifest.xml** 在`AndroidManifest.xml`文件中,你需要声明你的主活动。在这个例子中,主活动将是一个包含`TabLayout`和`ViewPager`的`CompatActivity`。 2. **添加依赖** 在`build.gradle`(Module: app)文件中,确保你已经包含了`design`库,因为它包含了`TabLayout`和`ViewPager`所需的组件。添加以下依赖: ```groovy dependencies { implementation 'com.google.android.material:material:1.4.0' implementation 'androidx.viewpager2:viewpager2:1.1.0' } ``` 并同步Gradle项目。 3. **创建Fragment类** 为了在每个标签页显示内容,你需要创建至少两个`Fragment`类。例如,你可以创建`FragmentOne`和`FragmentTwo`,它们都是`Fragment`的子类。每个`Fragment`将负责显示特定的UI内容。 4. **创建PagerAdapter** `PagerAdapter`是连接`Fragment`和`ViewPager`的桥梁。创建一个`FragmentStateAdapter`的子类,它会根据需要加载和销毁`Fragment`。例如,创建一个名为`TabPagerAdapter`的类: ```java public class TabPagerAdapter extends FragmentStateAdapter { public TabPagerAdapter(FragmentManager fragmentManager, Lifecycle lifecycle) { super(fragmentManager, lifecycle); } @NonNull @Override public Fragment createFragment(int position) { switch (position) { case 0: return new FragmentOne(); case 1: return new FragmentTwo(); // 添加更多Fragment default: return null; } } @Override public int getItemCount() { return 2; // 根据你的需求调整数量 } } ``` 5. **在主活动中设置TabLayout和ViewPager** 在主活动的布局XML文件(如`activity_main.xml`)中,添加`TabLayout`和`ViewPager`组件。然后在`MainActivity`中初始化它们并关联`TabPagerAdapter`: ```java public class MainActivity extends AppCompatActivity { private TabLayout tabLayout; private ViewPager2 viewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tabLayout = findViewById(R.id.tab_layout); viewPager = findViewById(R.id.view_pager); TabPagerAdapter adapter = new TabPagerAdapter(this, getSupportFragmentManager(), getLifecycle()); viewPager.setAdapter(adapter); new TabLayoutMediator(tabLayout, viewPager, (tab, position) -> { switch (position) { case 0: tab.setText("碎片一"); break; case 1: tab.setText("碎片二"); // 添加更多标签 break; } }).attach(); } } ``` 6. **自定义Fragment的布局** 为`FragmentOne`和`FragmentTwo`创建各自的布局文件(如`fragment_one.xml`和`fragment_two.xml`),并在对应的`Fragment`类中设置这些布局。 7. **运行应用** 编译并运行你的应用,你应该能看到一个带有两个标签的`TabActivity`,每个标签显示一个不同的`Fragment`内容。 以上就是使用`Fragment`创建`TabActivity`的基本步骤。你可以根据需要添加更多的`Fragment`,或者自定义`TabLayout`的样式和行为。记住,`Fragment`是Android开发中的强大工具,能够帮助你构建更加动态和模块化的用户界面。在实际项目中,还需要考虑`Fragment`的生命周期管理,以及在不同屏幕尺寸和方向下的适配问题。










































































































- 1

- hll9292014-02-16很不错,改进后能很很好的使用。
- maiqijun2014-09-30经过测试是可以用的,初学者可以借鉴
- danaodai9512013-11-14还不错!改一下就可以用!

- 粉丝: 13
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- MES系统与ERP接口设计解决专业技术方案.docx
- 基于网络药理学的山奈酚参与血府逐瘀汤治疗2型糖尿病作用机制研究.docx
- DB2业务规则的应用实践(3).doc
- 绿色智慧城市视角下的雄安新区农民职业培训路径研究.docx
- 自动门plc控制系统设计方案-plc自动门课程设计方案.doc
- 移动4G网络安全问题防范与对策.docx
- XX置地公司项目管理部职能说明书.doc
- 计算机网络谢希仁著课后习题答案.docx
- 贵阳市非物质文化遗产数据库建设及数字化标准采集研究.docx
- 任务书—SIEMENSSPLC夹套锅炉水温控制系统软件设计方案.doc
- 关于电力系统及其自动化技术的应用研究分析.docx
- 年度协同管理软件产业分析报告.docx
- 云计算环境下的图书馆数字资源共建共享研究-障碍.docx
- 学生成绩管理系统SQL数据库技术.doc
- 探究互联网+理念在农村小学高年级段的阅读指导.docx
- 关于区块链技术的应用与依法监管的几点思考.docx


