为什么这个片段的字段为空?

Why is this fragment's fields null?

在父片段的 onCreateView 方法中,我调用子片段管理器将片段插入到布局中。此子片段包含一些 FloatingActionButtons。

提交事务后,我会检查我的基础列表的内容(为 RecyclerView 供电),并根据是否存在任何值,我 hide/unhide 一些 FloatingActionButtons。

但是它告诉我这些按钮是空的!提交 Fragment 事务不会首先调用其所有典型的生命周期事件吗?有没有办法强制它等待?对此有更好的做法吗?

提交不是同步的。无法保证片段的生命周期何时执行。

如果您需要知道片段何时 "ready",请执行从片段到托管 activity 的回调,让它知道。

class CustomB extends CustomA { 
  interface Listener {
    void onViewCreated();
  }

  public View onCreateView() {
     View v = super.onCreateView();

     if (getActivity() instanceof Listener) {
       ((Listener)getActivity()).onViewCreated();
     }

     return v;
  }
}

一般来说,您应该尝试将您的片段设计为独立的。如果片段与 activity 紧密绑定,请考虑将功能实现为自定义 View