我被问到一个面试问题:片段是否可以在没有活动的情况下存在?我搜索了答案,但没有得到正确的答案和解释。有人可以帮忙吗?
答案 0 :(得分:14)
是的,您可以在任何地方执行此操作:
new YourFragment();
由于片段必须具有无参数构造函数。
然而,它lifecycle在附加之前不会启动。因此onAttach
,onCreate
,onCreateView
等仅在附加时才会被调用。因此,大多数碎片在连接之前都不会做任何事情。
答案 1 :(得分:8)
它可以作为内存中的对象存在(通过使用new
创建它),但它需要附加到Activity才能显示在屏幕上,假设它有任何UI(片段不必须有UI)。
答案 2 :(得分:3)
片段可以独立存在,但为了显示它,您需要一个Activity的帮助。活动将像Fragment(s)的容器一样。
答案 3 :(得分:3)
fragment
不需要成为Activity layout
的一部分;您也可以使用fragment
而不使用UI
作为Activity
的隐身工作人员,但需要将其附加到Activity
才能显示在屏幕上。
答案 4 :(得分:2)
Android应用必须具有处理片段的Activity或FragmentActivity。
无法在没有Activity或FragmentActivity的情况下启动片段。
答案 5 :(得分:0)
只要您创建了Fragment类的实例,它就会存在,但是为了使它显示在UI上,您必须将该片段附加到活动,因为片段的生命周期与活动并行运行#39;生命周期。如果没有调用Activity的onCreate(),就不会调用片段的onAttach(),onCreate(),onCreateView()和onActivityCreated(),因此无法启动它。
答案 6 :(得分:0)
我读到了最高评分的答案,我没有不同意,但是android已经提供了独立的片段,而没有DialogFragment活动,该活动扩展了fragment。如果要全屏显示,请先扩展DialogFragment,然后
nginx