Android之Fragment简介和使用实例,2024年最新资料开发工程师面试题

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注Android)
img

正文

依据上面对Fragment的管理生命周期的实例学习我们可知,管理Fragment的生命周期,和管理Activity的生命周期很类似,它们一般都包含Resumed、Paused和Stopped这三种状态。然而Fragment和Activity在生命周期方面也有一些差异,其中最大的区别就是各自如何在它的后台堆栈中存储。默认情况下,Activity被停止后,会被压入到由系统管理的Activity的后台堆栈(点击Back键回退到此Activity)。而Fragment被停止后,其实对象状态默认是不会被存放到堆栈中,除非当Fragment停止时调用addToBackStack()方法,此时才会将Fragment的对象状态压入到由宿主Activity管理的Fragment的后台堆栈。

Fragment使用实例

====================================================================

在我们实际开发中,在定义自己的Fragment类时,我们不需要重写Fragment全部的回调函数,但一般来讲,至少需重写并实现Fragment生命周期函数中的onCreate()、onCreateView()和onPause()这几个方法。在重写的onCreate()方法主要实例化一些在Fragment中需持久化的必要组件,在重写的onCreateView()方法中主要是返回当前Fragment的自定义根布局View和初始化布局中的一些控件对象,而在onPause()方法中主要是在用户离开Fragment时保存一些需要持久化的对象状态,下面有实现了三个方法的一个小例子,具体实例代码如下:

public class ExampleFirstFragment extends Fragment {

@Override

public void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

/**

  • 这里主要初始化一些在Fragment需使用和持久化的必要组件

*/

super.onCreate(savedInstanceState);

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

// TODO Auto-generated method stub

/**

  • 使用inflate()方法加载一个自定义的Layout布局,该布局是Fragment的根布局view.

  • inflate()方法的3个参数:

  • 1.想要加载的Layout Resource Id;

  • 2.加载 Layout的父ViewGroup,目的是将Layout挂靠到container上;

  • 3.布尔值,指示是否将Layout附着到ViewGroup中,这里一般指定false,

  • 因为Layout已经附着到container上,若为true,系统将为Layout新建一个ViewGroup作为附着对象,多余;

*/

View inView = inflater.inflate(R.layout.fragment_main, container, false);

/**

  • 这里主要是初始化Layout中的控件对象

*/

return inView;

}

@Override

public void onPause() {

// TODO Auto-generated method stub

super.onPause();

/**

  • 当用户离开此Fragment界面时,系统调用此方法,这里主要保存一些需要持久化的对象状态

*/

}

}

基本了解完如何自定义一个Fragment后,接下来我们将学习如何添加Fragment到Activity中并显示,一般的,有两种添加Fragment的方式,一种为静态添加,另外一种是动态添加。下面通过实例来更深入地学习两种方式的异同:

静态添加Fragment


首先创建两个自定义的Fragment,分别为AddFragmentFirst和AddFragmentSecond。AddFragmentFirst代码如下:

public class AddFragmentFirst extends Fragment {

@Override

public void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

// TODO Auto-generated method stub

View inView = inflater.inflate(R.layout.fragment_addfragmentfirst, container, false);

return inView;

}

@Override

public void onPause() {

// TODO Auto-generated method stub

super.onPause();

}

}

AddFragmentSecond代码如下:

public class AddFragmentSecond extends Fragment {

@Override

public void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

}

@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

// TODO Auto-generated

  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值