首页 理论教育 使用Fragment进行屏幕模块化管理:实现动态加载

使用Fragment进行屏幕模块化管理:实现动态加载

时间:2023-06-28 理论教育 版权反馈
【摘要】:而使用Fragment可以把屏幕划分成几块,然后进行分组,进行模块化的管理,从而可以更加方便地在运行过程中动态地更新Activity的用户界面。图2-4-2给出了一个Fragment分别对应手机与平板之间不同情况的处理图。本例中就是使用动态加载方式实现,大概需要以下4个步骤,实现流程如图2-4-3所示,参考代码如下:图2-4-3动态加载Fragment流程STEP 1:创建FragmentManager对象。

使用Fragment进行屏幕模块化管理:实现动态加载

1.添加CircularReveal动画特效

这里的动画需要使用ViewAnimationUtils库来实现,但是该库是Android 5.0以后才引入的,所以无法满足低版本。使用开源库CircularReveal,主要是提供了波浪式的展开和回缩动画,利用这个库提供的动画再进行自定义就很容易实现动画的效果了。下面是为底部菜单中的图片添加的动画效果的参考代码。

其中,createCircularReveal参数的解释如下:

(1)view:需要执行动画的对象,此处为底部菜单的图片。

(2)centerX:动画中心点的X坐标。

(3)centerY:动画中心点的Y坐标。

(4)startRadius:动画开始时的圆半径。

(5)endRadius:动画结束时的圆半径。

最后设置动画时长和延迟,就可以执行动画了。

2.创建Fragment

(1)Fragment的用途。Fragment是Android 3.0后引入的一个新的API,它出现的初衷是适应大屏幕的平板电脑,当然现在它仍然是平板App UI设计的宠儿,而且普通手机开发也会加入Fragment,可以把它看成一个小型的Activity,又称Activity片段。如果界面很大,只有一个布局,编写界面会很烦琐,而且如果组件很多,管理也会很烦琐。而使用Fragment可以把屏幕划分成几块,然后进行分组,进行模块化的管理,从而可以更加方便地在运行过程中动态地更新Activity的用户界面。另外,Fragment并不能单独使用,它需要嵌套在Activity 中使用,尽管它拥有自己的生命周期,但是会受到宿主Activity的生命周期的影响,比如Activity 被destroy销毁了,它也会随之销毁。图2-4-2给出了一个Fragment分别对应手机与平板之间不同情况的处理图。

图2-4-2 平板与手机中Fragment使用图

(2)Fragment的创建。在android.app包中和androidx.fragment.app包中都有Fragment,Android Studio中建议使用后者,前者在程序中显示已经过时。

1)静态加载Fragment。

STEP 1:定义Fragment的布局,就是Fragment显示的内容。

STEP 2:自定义一个Fragment类,在项目Java文件夹上单击鼠标右键,选择新建Fragment。新建的Fragment需要继承Fragment或者它的子类,重写onCreateView()方法在该方法中,调用inflater.inflate()方法加载Fragment的布局文件(R.layout.fragment1),接着返回加载的view对象。参考代码如下:

(www.xing528.com)

STEP 3:在需要加载Fragment的Activity对应的布局文件中添加Fragment的标签。首先必须要有id属性,然后添加name属性,属性值是包名+类名,代码如下所示:

STEP 4:Activity在onCreate()方法中调用setContentView()加载布局文件即可。

2)动态加载Fragment。本例中就是使用动态加载方式实现,大概需要以下4个步骤,实现流程如图2-4-3所示,参考代码如下:

图2-4-3 动态加载Fragment流程

STEP 1:创建FragmentManager对象。

STEP 2:创建FragmentTransaction事务对象。

STEP 3:使用replace方法实现页面的替换。

STEP 4:提交。

【课后任务】

根据本节课的内容,读者可以完成学习强国App主页面的设计与实现(图2-4-4)。

图2-4-4 学习强国App底部菜单

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈