关于fragment backstate的运用
2016-12-01 17:46
246 查看
这两天在使用Fragment做播放器里的播放列表和歌词显示两个界面的替换与更新时发现了很多问题,在此记录下问题及解决方法:
1.多个Fragment在replace后(并且都加入了后退栈ft.addToBackStack(null)),通过点击按钮事件移除顶层的fragment(使用remove方法),返回后的fragment的oncreatview方法有执行,但是页面仍然没法自行更新数据,页面空白,UI控件都消失了。
解决:不用remove方法,改用通过popBackStack()方法直接将栈顶的fragment弹出,然后直接恢复到要返回的那个fragment。
2.使用popBackStack()方法后,页面控件恢复了,但是数据并没有同步更新。
解决:这个问题困扰了很久,后来讲replace方法改成了add方法,并且在add之前将原先的fragment隐藏掉hide。这样在点击按钮收回播放列表的fragment后,返回的歌词fragment的显示进度是同步的了。
3.通过按钮点击可以正常弹出顶层的播放列表fragment了,同时歌词界面的fragment仍然同步更新。但是用按钮点击打开播放列表fragment,然后用back键返回,第一次正常,多次后歌词fragment就开始变成空白。将fragment的背景颜色修改成红色,异常界面就是红色。由此可见,通过back键返回的fragment仍然没有恢复和更新。
解决:这个不清楚具体原因,应该是使用back返回键和通过调用popBackStack()方法来移除fragment的机制不一样所导致的。这个找不到具体的解决办法,只能先采用规避方法,通过重写back监听方法,进而调用popBackStack()解决了这个问题。
1.多个Fragment在replace后(并且都加入了后退栈ft.addToBackStack(null)),通过点击按钮事件移除顶层的fragment(使用remove方法),返回后的fragment的oncreatview方法有执行,但是页面仍然没法自行更新数据,页面空白,UI控件都消失了。
解决:不用remove方法,改用通过popBackStack()方法直接将栈顶的fragment弹出,然后直接恢复到要返回的那个fragment。
解决:这个问题困扰了很久,后来讲replace方法改成了add方法,并且在add之前将原先的fragment隐藏掉hide。这样在点击按钮收回播放列表的fragment后,返回的歌词fragment的显示进度是同步的了。
1 |
解决:这个不清楚具体原因,应该是使用back返回键和通过调用popBackStack()方法来移除fragment的机制不一样所导致的。这个找不到具体的解决办法,只能先采用规避方法,通过重写back监听方法,进而调用popBackStack()解决了这个问题。
相关文章推荐
- 关于fragment backState的原理
- 关于fragment backstate的介绍
- 关于ViewPager、PagerAdapter、FragmentStatePagerAdapter
- 关于FragmentStatePagerAdapter状态保存引发的IllegalStateException
- 关于Fragment中两个FragmentPagerAdapter和FragmentStatePag的用法 http://www.apkbus.com/Android-90417-1-1.html
- 关于Fragment中返回键(onBackPressed)的处理
- 关于PagerAdapter、FragmentPagerAdapter、FragmentStatePageradapter之间的区别
- 关于ASP.NET中使用ViewState的心得。
- 关于语法运用的一些其他问题
- 关于Asp.net中的ViewState、Session....等的总结
- 关于Oracle 游标返回值 在C#中的运用(引用自www.souzz.net,个人学习参考用)
- visual studio net 2005关于用户列表增加停封与未停封帐号tag运用
- 关于EnableViewState以及页面中选择asp.net服务端控件和HTML控件的思考
- 关于webform_postbackoptions未定义的错误
- 关于onreadystatechange属性的一点疑问
- 关于.net winform中,几个同一界面上的控件,Dock顺序和Set to back/front的关系
- 关于视图状态(ViewState)/动态控件的问题
- 关于EnableViewState禁用与使用心得
- asp.net服务器控件开发(二) :ViewState的基本运用
- 关于ViewState Pagelife等问题的思考和疑问