我正在查看Fragment文档 Google Android Fragments
我一直在使用Android Studio创建的Fragments
非静态版
例如:
public class FormsFragment extends Fragment
为什么Google的文档宣称它们是静态的?是什么原因?
public static class DetailsFragment extends Fragment
答案 0 :(得分:1)
你的问题似乎是用两种类型对片段进行分类。静态和非静态,但不是,有两种类型的片段Static
和Dynamic
。关键字static并不意味着这是一个静态片段。关键字可能意味着该片段类是一个嵌套的内部类,只能访问顶级类(可能是一个活动)。
答案 1 :(得分:1)
使用片段,您必须遵循Android本身提供的合同。由于框架管理您的活动和片段生命周期,因此它需要能够创建这些类。这是使用公共默认构造函数完成的。此外,还需要将类本身公开。
因此,如果您将片段定义为“普通”类,则不必考虑其他任何内容。如果将其定义为另一个类的内部类,则必须将其声明为静态。否则,该类将具有一个带有外部类型参数的隐式构造函数,因此没有公共默认构造函数来创建片段的新实例。