是Android碎片视图还是ViewGroup

时间:2016-01-10 07:16:27

标签: java android android-fragments view android-viewgroup

正如问题所示,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,您必须从中返回一个视图   方法是片段布局的根源。

5 个答案:

答案 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)

片段是与主机活动生命周期相关联的自定义视图的包装。