目录
一、fragment的概念
1.1Fragment的历史由来
1.2什么是Fragment
1.3Fragment的生命周期
1.4Fragment的优点
二、Fragment的使用方法
三、Fragment的动态加载实现
四、总结
一、fragment的概念
1.1Fragment的历史由来
Fragment出现的初衷是为了适应大屏幕的平板电脑, 当然现在他仍然是平板APP UI设计的宠儿,而且我们普通手机开发也会加入这个Fragment, 我们可以把他看成一个小型的Activity,又称Activity片段!想想,如果一个很大的界面,我们 就一个布局,写起界面来会有多麻烦,而且如果组件多的话是管理起来也很麻烦!而使用Fragment 我们可以把屏幕划分成几块,然后进行分组,进行一个模块化的管理!从而可以更加方便的在 运行过程中动态地更新Activity的用户界面!另外Fragment并不能单独使用,他需要嵌套在Activity 中使用,尽管他拥有自己的生命周期,但是还是会受到宿主Activity的生命周期的影响,比如Activity 被destory销毁了,他也会跟着销毁!
下图是文档中给出的一个Fragment分别对应手机与平板间不同情况的处理图:
1.2什么是Fragment
“Fragment”(片段)一词常用于描述计算机程序中的一部分代码或功能,它通常是一段可重复使用的代码块,可以作为程序的一部分被多次调用。在Android开发中,Fragment是一个重要的概念,它是构建用户界面的可重用部分,用于将应用程序的功能划分为更小的模块,使应用程序更易于维护和测试。一个Fragment可以被多个Activity或者其他Fragments使用,也可以嵌套其他的Fragments,提高应用程序的代码可重用性和灵活性。Fragment是依赖于Activity的,不能独立存在的。
1.3Fragment的生命周期
Fragment的生命周期指它从创建到销毁的整个过程,包括生命周期方法的调用。以下是Fragment的生命周期方法:
1. onAttach():当Fragment与Activity发生关联时调用。
2. onCreate():当Fragment被创建时调用。
3. onCreateView():当Fragment的UI被创建时调用。
4. onActivityCreated():当Fragment所属的Activity完成onCreate()方法时调用。
5. onStart():当Fragment可见时调用。
6. onResume():当Fragment处于前台、获取用户焦点并可与用户进行交互时调用。
7. onPause():当Fragment失去焦点但仍可见时调用。
8. onStop():当Fragment不再可见时调用。
9. onDestroyView():当Fragment中的视图被销毁时调用。
10. onDestroy():当Fragment被销毁时调用。
11. onDetach():当Fragment与Activity解除关联时调用。
1.关于生命周期图的解读:
1)当点击返回键、Fragment被移除了、Fragment被替换了,生命周期会从图中的左侧的箭头往下走(onPause()、onStop()、onDestroyView()、onDestroy()、.onDeatch());
(2)当Fragment被添加到返回栈,然后被移除了或者被替换了,生命周期会从图中的右侧的箭头往下走(onPause()、onStop()、onDestroyView());此时要是再点击返回,回依次执行(onCreateView()、onActivityCreated()、onStart()、onResume());
在Fragment的生命周期过程中,我们可以在上述方法中执行对应的操作,比如进行数据加载、资源释放等操作,以提高Fragment的安全性和性能。
1.4Fragment的优点
以下是Fragment的一些优点:
1. 模块化:Fragment可以将应用程序拆分为模块和组件,并且可以作为一个独立的模块进行开发和测试,提高代码的可重用性和可维护性。
2. 灵活性:Fragment可以在Activity中或者其他Fragment中嵌套,方便应用程序的构建和组织。
3. 多屏幕适配:Fragment可以适配各种不同屏幕尺寸和方向,使得应用程序能够在各种设备上提供一致性的用户体验。
4. 生命周期:Fragment有自己的生命周期,可以方便地进行数据加载、储存和释放等操作,提高应用程序的安全性和性能。
5. 响应式UI:Fragment可以在运行时动态地添加、移除、替换等UI元素,提供更加灵活的响应式用户界面。
总而言之,Fragment将应用程序拆分为模块化的组件,提高了应用程序的可维护性和可扩展性,提供了更加灵活和响应式的用户界面,并方便地进行多屏幕适配和数据管理。
二、Fragment的使用方法
-
创建一个继承自Fragment的Java类。
在 Android Studio 中,可以使用模板来创建一个新的 Fragment。选择 File -> New -> Fragment -> Fragment (Blank)。
-
在该Fragment类中实现必要的方法,如
onCreateView()
等。 -
在Activity布局文件中添加
<FrameLayout>
标签或者其他容器来作为Fragment的容器。 -
在Activity中动态地添加、移除、替换等Fragment。
其中,步骤3和步骤4可以使用代码方式来完成,也可以使用布局文件和FragmentManager的API来实现。以下是代码方式实现添加一个Fragment的例子(以Java代码为示例):
MyFragment fragment = new MyFragment(); // 创建一个新的Fragment对象
FragmentManager fragmentManager = getSupportFragmentManager(); // 获取FragmentManager
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); // 开始一个Fragment事务
fragmentTransaction.add(R.id.fragment_container, fragment, "MyFragment"); // 将Fragment添加到指定容器并指定标记
fragmentTransaction.commit(); // 提交事务
三、Fragment的动态加载实现
-
创建需要添加或替换的Fragment实例。
-
获取FragmentManager实例。
-
开启一个FragmentTransaction事务。
-
调用FragmentTransaction中的方法添加、替换或者移除Fragment。
-
提交事务。
以下是一个简单的动态加载Fragment的示例:
// 创建需要添加的Fragment实例
MyFragment myFragment = new MyFragment();
// 获取FragmentManager实例
FragmentManager fragmentManager = getSupportFragmentManager();
// 开始FragmentTransaction事务
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
// 添加Fragment到布局文件中的FrameLayout中
fragmentTransaction.add(R.id.container, myFragment, "MY_FRAGMENT");
// 提交事务
fragmentTransaction.commit();
在上述示例中,我们创建了一个新的Fragment实例,并使用getSupportFragmentManager()
方法获取FragmentManager实例,最后使用add()
方法将Fragment添加到指定的容器中,这里使用了FrameLayout容器,其ID为R.id.container
。如果需要替换或者移除Fragment,可分别使用replace()
或remove()
方法实现。
总之,动态加载Fragment是Android开发中常见的操作,在开发过程中可以根据具体的需求来添加或者替换Fragment,以达到更好的用户体验。
下面我用一个例子来演示Fragment的动态加载
在HomeActivity活动中做多个按钮,每个按钮对应一个碎片,每次点击按钮,切换到按钮相应的碎片中,展示不同的内容。
1.首先创建主活动HomeActivity类和布局,布局中我们使用线性布局,再设置上下两层子布局
上层使用FragmeLayout布局,注意设置好id,下层使用LinearLayout布局,设置好4个按钮和对应id。效果图如下:
2.创建4个Fragment类和布局
3.修改主活动HomeActivity类逻辑
设置一个replace函数作为切换。
最后实现的效果如下:
四、总结
学习Fragment是Android开发的重要内容之一,在我看来,Fragment的学习主要包含以下几个方面:
1. 了解Fragment的优点和用途:Fragment作为一种UI组件,拥有良好的生命周期,可以作为模块化的组件进行开发和测试,同时提供了更加灵活和响应式的用户界面。学习Fragment需要深刻理解其优点和用途,这样才能在实际的应用场景中更好地运用它。
2. 掌握Fragment的生命周期:Fragment的生命周期包括多个方法,对于理解Fragment的运行机制和管理非常有帮助。学习过程中,我们需要详细地学习和理解每个生命周期方法,并根据具体需求来实现对应的操作。
3. 学会使用Fragment的API:Fragment在Android SDK中提供了很多API,包括FragmentManager、FragmentTransaction、LoaderManager等,熟练掌握这些API的使用,可以提高Fragment的开发效率和质量。
4. 学习Fragment的布局方式:使用Fragment需要理解布局方式,包括XML文件中添加Fragment、在Java代码中添加Fragment、使用动态Fragment等。每种方式都有优点和缺点,需要根据应用场景选择合适的方式。文章来源:https://www.toymoban.com/news/detail-772764.html
总之,学习Fragment需要掌握其概念、生命周期、API和布局方式等多个方面。掌握这些方面,可以使得我们能够更好地运用Fragment构建出高效、高质量的Android应用程序。文章来源地址https://www.toymoban.com/news/detail-772764.html
到了这里,关于Android Studio中fragment的应用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!