FragmentTabHost选项卡优化

来源:互联网 发布:淘宝网付款方式 编辑:程序博客网 时间:2024/06/03 17:45
       使用FragmentTabHost实现选项卡,切换不会保存Fragment的状态,是因为切换操作调用的是onAttach()和onDetach(),会不断的调用onCreate(),onCreateView().所以为了保存状态,重写FragmentTabHost使用show()和hide代替onAttach()和onDetach().
       但是遇到了其他问题,之前切换tab会调用onResume,所以会选择在里面做一些数据处理,重写之后切换tab就不再调用了,所以就想到了用setUserVisibleHint来代替,但发现这个方法没有调用,就使用了onHiddenChanged()方法,满足了需求。
      Fragment在调用show()和hide()时 setUserVisibleHint没有被调用,但在ViewPager中使用时,已经被创建的Fragment从屏幕外面划进来时才会触发setUserVisibleHint(),而show()和hide()没有被调用,我认为原因可能是Fragment初始状态都是show的状态,而且第一次创建不会调用onHiddenChanged。所以我觉得setUserVisibleHint这个方法是相对于是否在屏幕里来说的,而show()和hide()只是隐藏或显示Fragment,并没有从屏幕中移到屏幕外,所以就没有触发setUserVisibleHint(),只会触发onHiddenChanged。
0 0
原创粉丝点击