我有一个动态替换片段的活动:
private void goToFragment(Fragment newFragment, String tag) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.fragment_container, newFragment, tag);
ft.addToBackStack(null);
ft.commit();
}
现在,我想访问片段内的视图,以便在调用goToFragment
.
问题是,在片段onCreateView
完全渲染之前,片段不会被调用,至少在我的理解中是这样。
我知道覆盖onAttach(Activity activity)
片段中的 是一种解决方法,但是我必须将它专门用于我的活动 - 我只是想避免这种情况,因为我认为片段依赖于特定活动是不好的做法.
据我所知,Fragment
没有实现任何听众(作为主题)。
所以我想我必须创建自己的侦听器(使用观察者模式使片段成为主题,活动成为观察者),然后在onCreateView
oronAttach
完成时调用它,然后最后用数据回调到片段需要设置。但是,我需要对几个片段执行此操作,因此我必须为每个片段创建一个侦听器,我再次认为这很糟糕。
有没有更好/更简单的方法来做到这一点?