Java 如何理解一个片段?

Java 如何理解一个片段?,java,android,android-fragments,Java,Android,Android Fragments,所以我重新写了一遍。 问题是: 如果片段是用xml声明的,则不能对其调用replace。为什么? 如果要将片段放入FrameLayout(id,frame_layout),请调用 添加(R.id.frame\u布局,片段)将导致“无视图存在错误”。有一种方法可以通过调用add(android.R.id.content,fragment)来解决这个问题。 问题是,如果R.id.frame_布局不是活动的基本布局,该怎么办 另外,在动态片段调度(使用replace和add)中,可能只有一个容器可以包

所以我重新写了一遍。 问题是:

  • 如果片段是用xml声明的,则不能对其调用replace。为什么?

  • 如果要将片段放入FrameLayout(id,frame_layout),请调用 添加(R.id.frame\u布局,片段)将导致“无视图存在错误”。有一种方法可以通过调用add(android.R.id.content,fragment)来解决这个问题。 问题是,如果R.id.frame_布局不是活动的基本布局,该怎么办

  • 另外,在动态片段调度(使用replace和add)中,可能只有一个容器可以包含一个片段而不是两个


  • 我浏览了很多

    问题1。如果片段是用xml声明的,则不能对其调用replace。为什么? 因为这是一个静态片段。安卓系统会一直坚持下去。没有办法拆卸或更换它。任何在同一id上“添加”或“替换”的新片段都将被放置在彼此的顶部

    Q2如果要将片段放入FrameLayout(id,frame_layout),则调用add(R.id.frame_layout,fragment)将导致“无视图存在错误”。有一种方法可以通过调用add(android.R.id.content,fragment)来解决这个问题。问题是,如果R.id.frame_布局不是活动的基本布局,该怎么办? 事实并非如此。视情况而定。一般来说,函数调用“add(id)”中的id仅指片段的容器或要被片段替换的视图。android.R.id.content表示活动中视图的按钮层

    另外,在动态片段调度(使用replace和add)中,可能只有一个容器可以包含一个片段而不是两个?
    那要看情况了。为了清楚起见(如果您希望同事理解您的代码),最好确保只有一个容器包含一个片段。这是动态片段,不是静态片段的规则。

    我怀疑android首先根据setContentView(R.layout.chapter\u activity)创建了一个哑片段;然后,它会看到FragmentTrasaction.add(…),并创建另一个片段并添加到activity.for 2.)在片段事务之前调用
    setContentView()
    …尝试在If条件之前填充布局。