所以我重写了它.
问题是:
>如果在xml中声明了片段,则无法对其进行调用.为什么?
>如果要将片段放入FrameLayout(id,frame_layout),则调用
add(R.id.frame_layout,fragment)将导致“No View exists Error”.通过调用add(android.R.id.content,fragment)可以解决这个问题.
问题是,如果R.id.frame_layout不是您活动的基本布局,该怎么办?
>另外,在动态片段分派(使用替换和添加)中,也许只有一个容器可以包含一个片段而不是两个片段?
最佳答案 我浏览了很多……
Q1.如果片段是在xml中声明的,那么就不能在其上调用replace.为什么?
因为那是一个静态片段. Android系统总是会坚持下去.无法删除或替换它.任何在同一个id上“添加”或“替换”的新片段都将放在彼此之上.
Q2如果要将片段放入FrameLayout(id,frame_layout),则调用add(R.id.frame_layout,fragment)将导致“No View exists Error”.通过调用add(android.R.id.content,fragment)可以解决这个问题.问题是,如果R.id.frame_layout不是您活动的基本布局,该怎么办?
这不是真的.视情况而定.一般来说,函数调用“add(id)”中的id仅表示片段的容器或将被片段替换的视图. android.R.id.content表示活动中视图的buttom层.
此外,在动态片段分派(使用替换和添加)中,也许只有一个容器可以包含一个片段而不是两个?
这得看情况.仅为了清晰起见(如果您希望同事了解您的代码),确保只有一个容器包含一个片段是很好的习惯.这是动态片段,而不是静态片段的规则.