android 管理fragment,Android中全局管理Fragment的FragmentFactory

本文介绍了如何使用LevineUtils的FragmentFactory管理自定义Fragment。FragmentFactory借助apt技术,通过注解方式管理Fragment,解决重影问题,并提供显示和隐藏Fragment的控制。文章详细阐述了FragmentFactory的初始化、自定义Fragment、显示Fragment、处理重影问题的方法,以及跨Activity使用场景。
摘要由CSDN通过智能技术生成

这篇文章专门用于讲述LevineUtils中的FragmentFactory,需要集成LevineUtils

1.FragmentFactory简介

FragmentFactory是利用apt技术,即通过注解的方式来管理整个应用中的自定义的Fragment,通过FragmentFactory对象的showFragment(String tag)方法来控制fragment的显示和隐藏,从而实现了fragment的切换.

FragmentFactory同时也对fragment的重影问题给出了解决方案,通过使用saveCurrentFragmentInfo(Bundle bundle)restoreCurrentFragmentInfo(Bundle bundle)方法保存状态和恢复状态.

2.使用FragmentFactory

初始化FragmentFactory

在activity中的onCreate方法中初始化FragmentFactory对象,但是需要注意的是需要继承自FragmentActicity 或者AppCompatActicity,因为在FragmentFactory中使用的是getSupportFragmentManager,所以你的activity必须继承自FragmentActivity或

AppCompatActivity:

public class MainActivity extends AppCompatActivity {

private FragmentFactory mFactory;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

//使用单例模式创建`FragmentFactory`对象,R.id.mContentnF1是要显示的Fragment的布局容器的id

mFactory = FragmentFactory.getInstance()

.init(this, R.id.mContentFl);

....

}

@Override

protected void onResume() {

super.onResume();

//很关键,在activity切换时起作用,如果APP使用单activity,则不需要这句代码

mFactory.onResume(this,R.id.mContentFl);

}

}

自定义Fragment

例如我的主界面是这样的布局,里面含有两个tab,用于两个Fragment的切换:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

xmlns:app="http://schemas.android.com/apk/res-auto"

android:orientation="vertical">

android:id="@+id/mContentFl"

android:layout_width="match_parent"

android:layout_height="0dp"

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值