正如问题所示,android中的Fragments是View或ViewGroup。任何人都可以解释
以下是来自docs
的片段的onCreateView方法from pprint import pprint
from jupyter_client.consoleapp import JupyterConsoleApp
class MyKernelApp(JupyterConsoleApp):
def __init__(self, connection_file, runtime_dir):
self._dispatching = False
self.existing = connection_file
self.runtime_dir = runtime_dir
self.initialize()
app = MyKernelApp("connection.json", "/tmp")
kc = app.kernel_client
kc.execute("print 'hello'")
msg = kc.iopub_channel.get_msg(block=True, timeout=1)
pprint(msg)
传递给onCreateView()的
public static class ExampleFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.example_fragment, container, false); } }
参数是父参数 ViewGroup(来自活动的布局)中的片段布局 将被插入
和
要为您的片段绘制UI,您必须从中返回一个视图 方法是片段布局的根源。
答案 0 :(得分:2)
你不能将片段定义为视图或viewgroups.Fragments不仅仅是这样。片段可视化的最简单方法是将它们视为具有自己的xml外观的活动的块,具有自己的生命周期回调的自己的行为。它们总是运行在活动之上允许您在运行时执行添加,替换等操作。这样您就可以有效地切换布局。
要了解onCreateView
方法,请考虑以下说明:
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){
View view =inflater.inflate(R.layout.example_fragment, container, false);
return view;
}
这将返回一个View对象,始终为ViewGroup
,其中包含定义Fragment UI的View对象集。当片段提供其UI用于显示时,Activity
调用此事件处理程序。
答案 1 :(得分:0)
碎片是一种不全屏的活动,它可以将屏幕拆分成许多碎片,因此很适合用于手机和平板电脑。
答案 2 :(得分:0)
我认为不是,活动(片段)控制视图显示的内容,viewGroup扩展视图并实现ViewManger.Only Activity加载相关视图可以在手机上显示layout.Activity是一个Group,视图可以在这个容器中正常工作< / p>
答案 3 :(得分:0)
都不是。 Fragment
是基类。
来自https://developer.android.com/guide/components/fragments.html
Fragment
代表用户界面的行为或部分 活动
Fragment
包含一个字段:
// The View generated for this fragment.
View mView;
在onCreateView
中生成,具有以下实现:
@Nullable
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
Bundle savedInstanceState) {
return null;
}
因此,如果您希望Fragment
使用View
,那么@Override
该方法。如果您使用Fragment
或嵌套Activity
中的相应片段事务,则可以向用户显示Fragment
。
答案 4 :(得分:0)
片段是与主机活动生命周期相关联的自定义视图的包装。