添加Fragment的方式:
-
静态添加
1.1:在Activity的layout中通过<fragment>添加指定的fragment。
注意:但是此frgament必须得在onCreateView()返回要加载的View,否则会抛出“IllegalStateException”。 -
动态添加
2.1:通过FragmentActivity的getSupportFragmentManager()获取FragmentManager.
2.2:通过FragmentManager的beginTransaction()获取FragmentTransaction.
2.3:new Fragment()或者可以通过Fragment.instantiate()创建相应的Fragment.
2.3.1:如果想要传递数据的话,需要把数据 put 到 Bundle中。
2.4:调用FragmentTransaction的add/replace等添加Fragment到指定的Act的布局处。
2.5:调用FragmentTransaction的commit/commitAllowingStateLoss()提交当前 事物。
问题:为什么在动态添加Fragment时,onCreateView()返回null,不会抛出“IllegalStateException”??
替换Fragment
replace()
移除Fragment
remove()
隐藏/显示Fragment
hide()/show()
给Fragment添加 进/出场 动画
添加自定义动画:setCustomAnimations(int enter, int exit)
setTransition()??
Activity向Fragment传递数据
通过setArguments(Bundle)传递数据
通过getArguments()获取数据
Activity与Fragment通信
1:Activity获取Frgment实例,通过Fragment的实例调用其方法。
2:Handler
3:广播
4:接口方式
5:EventBus
Fragment与Fragment通信
1:通过Fragment获取 Activity 再获取相应Fragment,然后调用目标Fragment的方法
2:Activity中创建中转Hanler,通过相应的消息,再通过Activity获取目标Fragment,再调用目标Fragment的方法。
3:广播
4:EventBus
结合ViewPager使用
ViewPager通过setAdapter()
网友评论