Fragment相关问题

695 阅读1分钟

关于fragment的onHidden的问题

  1. 这个只有在hide,show的时候会触发 在add 的时候是不会触发的 首次加载的时候是不触发的onHiddenChanged

  2. activity 上有4个fragment 当前的fragment 为A activity finish掉的时候, B fragment不走生命周期的 除非是已经被调用.add的时候才会走生命周期

关于fragment的onHiddenChanged+onResume+问题

  1. viewpager+fragment 情况:

onHiddenOnChange()+onResume()的区别:

第一次可见的时候生命周期都是onHiddenOnChange-->onResume

其它都只走onHiddenOnChange。除非是activity切换了走了生命周期,这个时候会走onPause跟onResume但是不走onHiddenOnChange

  1. 不带有viewpager情况:

Activity has been destroyed

//在 activity 的 onCreate 中
mFragmentManager.beginTransaction()
	.add(resId, new OneFragment())
	//这里会报异常,activity has been destroyed
	.commit();

原因:Fragmenttransaction也是在 onCreate 中初始化,也许是异步初始化。这就涉及到执行顺序问题。 解决:add(redId,Fragment)放到onCreate()后的生命周期onResume()

DilogFragment生命周期和和设置布局大小无效问题