zoukankan      html  css  js  c++  java
  • java.lang.IllegalStateException: Fragment already added:

    Fragment 相关API

    getSupportFragmentManager().popBackStack()

    getFragmentManager().getBackStackEntryCount 其是操作谁的,当一个activity初次显示的时候,其是0还是1.

    Fragment 具体有几个stack, 前端界面显示stack, 和后端缓存的stack

    backStack 其属于哪一个stack

    Activity, fragment, stack 其之间的关联是什么

    FragmentManager的作用

    1. 代activity管理所有fragment行为操作. 反过来推论:要想以于Fragment与activity发生关联,就必须通过fragmentManager

    2. 具体操作: 对于activity当中所有fragment进行删改查

    3.fragmentManger:以stack这种数据结构来管理所有Fragment.为什么要用stack.界面的切换一般均要stack的方式进行的。如进入返回

    activity当中有几种类型的fragment呢。这几种类型之间的关联。相关的操作API是什么。

    1. 一个activity可以同时显示多个fragment, 这是也就是有些操作,不方便统一实现 ,如Fragment来直接处理backpress, activity并不能直接知道当中前哪些Fragment是可视的,或者唯一可视的。

    4. 查:findFragmentById()或findFragmentByTag() 是用来查找activity当中的fragment, 要查找的时候,就可以使用这个方法。

    其在哪里面查找: 应该是backstack当中。推论: 每一个activity其只是是backstack. 当前fragment在backstack当中没有

    5.删除: 删除哪个,为什么会要删除, 删除:回退删除,指定删除

    popBackStack(): 回退删除,注意此方法为异步方法,其只是就请求发送到消息队列当中,当这个动作直到应用回到事件循环当中才执行。注意:如果此时队列当中还有对于fragment操作,可能会引起异常,我就遇到了java.lang.IllegalStateException: Fragment already added。 程序当中的具体业务在对于fragment进行操作的时候,要添加判断。

    6. 增: add, remove, show,hide 其之间的相同点,不同点,各自的应用场景

    且注意:与addToBackStack之间的关联,如add 与addToBackStack

    如: 当前为A fragment 需要切换到B fragment

    相同点: 均是将B对于activity当中

    不同点: 对于A的处理

    对于:add方式

    1. 当前fragment

    2. fragment popbackstack 与backkey

    getSupportFragmentManager().

    FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();

    ft.add()

    ft.addToBackStack(null): 为什么是传入null

    ft.commit()

    manager.popBackStackImmediate()

    1. popBackStack 与addToBackStack一定要匹配使用,

    注意:当在切换fragment的时候,没有将之前的fragment加入到backStack,那调用popBackStack就不会有作用,界面效果就是没有切换。

    2. replace与addToBackStack 和add与addToBackStack之间区别

    相同点:

    不同点:

    After replacing Fragment, Activity still detects Fragment is visible

    http://blog.csdn.net/mobilexu/article/details/11711865

    http://www.cnblogs.com/mengdd/archive/2013/01/09/2853254.html

    http://so.csdn.net/so/search/s.do?ref=toolbar&q=fragment+%E5%88%86%E6%9E%90&ref=toolbar&q=fragment+%E5%88%86%E6%9E%90

    http://blog.csdn.net/liu470368500/article/details/38145601

  • 相关阅读:
    python excel 像 Excel 一样使用 python 进行数据分析
    ubuntu 系统分区
    ubuntu 配置和修改ip地址
    yum centos 修改镜像源
    centos6 安装 docker 问题
    Feign 的简单使用(2)
    feign client 的简单使用(1)
    xsync
    canal 配置
    javascript之DOM编程正则表达式引入
  • 原文地址:https://www.cnblogs.com/pengxinglove/p/4378611.html
Copyright © 2011-2022 走看看