【发布时间】:2013-03-10 08:04:24
【问题描述】:
在official Fragment guide 的Design Philosophy 部分中,它说:
您应该将每个片段设计为模块化且可重用的活动组件。也就是说,因为每个片段都通过自己的生命周期回调定义了自己的布局和自己的行为,所以您可以在多个活动中包含一个片段,因此您应该设计重用并避免直接从另一个片段操作一个片段.
但在其Example 中,TitlesFragment 类(扩展ListFragment)在其showDetails() 方法中直接引用DetailsFragment 类(扩展Fragment)findFragmentById()
DetailsFragment details = (DetailsFragment)
getFragmentManager().findFragmentById(R.id.details);
并调用DetailsFragment 类的newInstance() 方法。
details = DetailsFragment.newInstance(index);
这是一种糟糕的编码风格吗?
相比之下,Basic Training Material 在编码风格上似乎做得更好。它使用一个接口进行 Fragment 到 Activity 的通信。
【问题讨论】:
-
我怀疑这可能只是为了让示例保持简单和小巧而造成的。
-
我也在考虑,第一行只是引用另一个
Fragment对象,并且它在下一行中正确地检查了null。对于第二个,它只是从类中调用一个静态方法。毫无疑问,基础培训材料中的方式更整洁,结构更合理。但是这两行是否已经意味着操纵另一个Fragment对象?
标签: android interface android-fragments