我正在使用Fragments来表示我的应用程序中的不同视图.在视图之间导航时,我使用以下代码替换片段:

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();

ft.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left, R.anim.slide_in_left, R.anim.slide_out_right);

ft.replace(R.id.main_linearlayout_fragmentcont, frag);

ft.addToBackStack(null);

ft.commit();

旋转时我遇到了很多问题并重建了活动.我需要支持旧版本的android所以android:configChanges =“orientation”不是一个选项.很多问题都是由于Android如何保存Fragment状态的本质.

这些是我遇到的问题:

1)片段转换在旋转后自动恢复时,不记得弹出事件的自定义动画.然而他们记得我的BackStack.我知道我可以编写自己的后台处理程序,使用动画进行替换并一起摆脱弹出,但我想知道是否有办法在调用popBackStack()之前重置动画或者让FragmentManager记住旋转后自动恢复时的动画.

2)我遇到的另一个问题是我在我的一个顶级片段视图中有一堆子视图(linearlayouts),它们包含自己的片段.这些子视图以编程方式创建和填充.当我的片段在旋转后重新创建时,我以编程方式重建片段对象的onCreateView中的子视图,最后在每个子视图下面都有重复的片段(1 – 我以编程方式创建,1 – Android片段从恢复创建).我假设这是因为我在使用相同的id旋转后以编程方式重建子视图.有没有办法防止碎片被恢复?什么时候Android将片段从savedState注入这些视图我以编程方式构建?我该如何防止这种情况发生?

3)对于我的frag(Fragment)对象,上面的替换代码似乎多次触发onCreateView.当我仅运行上面的代码一次时,这是没有旋转的.有没有理由使用上面的代码多次调用片段的onCreateView?

有关碎片的问题:

1)我可以阻止Android在重建活动时自动恢复片段吗?我该怎么做?它是基于LinearLayout的ID吗?我可以调用包含片段onStop的LinearLayout的removeAllViews吗?这样,视图在保存时不存在?

2)有没有办法将片段添加到我有引用但没有ID的LinearLayout?看来片段添加,替换API需要一个int ID.

谢谢!

android 碎片问题,Android碎片问题相关推荐

  1. android碎片按钮,Android 碎片(Fragment)

    Android 碎片(Fragment) 碎片是活动的一部分,使得活动更加的模块化设计.我们可以认为碎片是一种子活动. 下面是关于碎片的重要知识点 - 碎片拥有自己的布局,自己的行为及自己的生命周期回 ...

  2. android 首页6个碎片,Android 单帧碎片

    Android 单帧碎片 单帧碎片:单帧碎片是为小屏幕设备所设计的,如手持设备(移动电话),Android 3.0 以上版本支持. 实例 该实例解释如何创建自己的碎片.这里我们创建两个碎片,其中一个被 ...

  3. android fragment 菜单栏,android UI:底部菜单栏的学习与制作——Fragment碎片一

    碎片(Fragment) 嵌入与活动中的UI片段,为了合理的分配布局而存在,这是我的简单理解.多用于兼顾手机与平板的UI,也适用于灵活高级的UI制作. Demo 简单的按键切换两片不同的Demo 新建 ...

  4. Android 第十七课 碎片的简单用法及动态添加碎片

    Fragment(碎片)是一种可以嵌入在活动当中的UI片段,它可以让程序更加合理和充分的利用大屏幕的空间.碎片和活动太像了,同样都包含布局,都有自己的声明周期,可以将碎片理解为一种迷你型的活动. 新建 ...

  5. android: 动态加载碎片布局的技巧

    虽然动态添加碎片的功能很强大,可以解决很多实际开发中的问题,但是它毕竟只是在 一个布局文件中进行一些添加和替换操作.如果程序能够根据设备的分辨率或屏幕大小在运 行时来决定加载哪个布局,那我们可发挥的空 ...

  6. android androidx版本,Android AndroidX 简介与迁移

    AndroidX 简介 AndroidX 是 Android 团队用于在 Jetpack 中开发,测试,打包,版本和发布库的开源项目 . AndroidX 是对原始 Android Support L ...

  7. android入门知识,android基础知识学习笔记

    该笔记主要是通过学习<第一行代码>中的各种知识点以及实例,进行的个人学习记录,感谢图书作者郭霖大神 android:label 指定活动中标题栏的内容,标题栏是显示在活动最 顶部的* 标题 ...

  8. android 工作总结,Android项目的个人总结

    Material Design  实战  是由谷歌的设计工程师 1.Toolbar xml文件中调用android.support.v7.widget.Toolbar 2.滑动菜单 DrawerLay ...

  9. android framelayout 高度,Android SupportLib – FrameLayout在CoordinatorLayout中与AppBarLayout消耗整个屏幕高度...

    我目前在Android设计支持库的CoordinatorLayout中遇到了一个FrameLayout的问题,而在创建选项卡时,我遵循了这个 post的指示. 基本上大多数事情按预期工作,容器片段被充 ...

  10. Android学习之Android历史

    一个优点:无论学习什么之前都要了解一下它的历史. Android读音:android 英 [ ˈændrɔɪd ] 美 [ ˈænˌdrɔɪd ],中文音译:"安叫伊德",或者&q ...

最新文章

  1. 一分钟帮你提升Android studio 编译速度
  2. 硬核!15张图解Redis为什么这么快
  3. 《Python基础教程第二版》第二章-Python列表和元祖
  4. 专访梅耶·马斯克:硅谷钢铁侠是怎样被炼成的?
  5. 如何了解这个世界(社会)运行的本质
  6. KlayGE中的FXAA已经完成
  7. jQuery的效果方法
  8. Python四:HoughCircles()霍夫变换
  9. POJ 1579 Function Run Fun
  10. php 随机数据库,PHP实现随机一句功能
  11. pyqt5写一个抽奖程序(再次美化)
  12. mysql表analyze_MySQL ANALYZE Optimize Check Table使用详解
  13. java class查看器_java class文件查看工具
  14. sobel 边缘检测 c语言,Sobel边缘检测算法(转载)(示例代码)
  15. 计算机网络误区——可以通过非ARP报文(正常数据包)学习ARP表项吗?
  16. 湖南省张家界市谷歌高清卫星地图下载
  17. Android开机自动运行
  18. Julia学习笔记:使用GLM包进行一元回归分析及模型拟合度检验
  19. 只有VOB文件也可以制作成DVD——用IfoEdit建立IFO篇(最好的方法)
  20. PHP 定界符EOT用法

热门文章

  1. linux下分割文件的方法,关于linux系统下分割大文件的方法
  2. Linux安装Bitbucket7.6.0教程-绝对干货满满
  3. Nodejs服务器端处理POST提交的数据_note
  4. fetch请求报错:
  5. python语言如何软件搬家_python写程序-就像搬家把物品分类放在箱子里
  6. ROS学习笔记(八): ROS通信架构
  7. delphi 实现屏幕旋转代码_代码检查 | 如何用Processing实现3D世界
  8. python链表结构_CodeSalt | Python数据结构的实现 — 链表
  9. php 传递resource参数,php define的第二个参数使用方法_php技巧 - is_resource
  10. centos 修改密码_openstack Train版部署——基于centos系统(四)