Andriod Fragment---添加用户界面

通常,Fragment是作为Activity用户界面的一部分来使用的,并且它会给Activity提供自己的布局。 

要给Fragment提供一个布局,你必须实现onCreateView()回调方法,系统在给Fragment描画布局的时候会调用这个方法。这个方法的实现必须返回一个View,它是Fragment布局的根。

注:如果你的的Fragment是ListFragment的子类,默认的实现是从onCreateView()方法中返回一个ListView(),因此你不需要实现它。

为了从onCreateView()方法中返回一个布局,你能够通过XML文件中的一个布局资源的定义来填充它。为了帮助你做这件事,onCreateView()方法提供了一个LayoutInflater对象。

例如,Fragment的一个子类通过example_fragment.xml文件加载一个布局:

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);
    }
}
传递给onCreateView()方法的container参数是ViewGroup(来自Activity的布局)的父类,你的Fragment参数将被插入到这个容器中。如果Fragment正在被恢复,那么savedInstanceState参数就提供一个有关前一个Fragment实例数据的Bundle对象(在有关处理Fragment生命周期(Handling the Fragment Lifecycle)一节中会更多的讨论恢复状态)。

Inflate()方法需要三个参数:

1.   第一个参数是你想要填充的布局的资源ID;

2.   第二个参数ViewGroup是被填充的布局的父容器,传递container参数是至关重要的,因为在这个方法执行过程,系统要把这个父视图指定的布局参数用作被填充的布局的根视图。

3.    一个布尔值参数指示在填充期间是否要把布局绑定到ViewGroup(第二个参数)上。在这个例子中,指定false是因为系统已经把被填充的布局插入到container参数中了---如果传递true,在最终的布局中会创建一个多余ViewGroup。

你已经看到了如何创建一个提供布局的Fragment,接下来就需要把Fragment添加到Activity中。


注:本人转载系个人觉得翻译的很好,值得收藏,且自己回头看着方便。

如有兴趣请访问作者官方博客http://blog.csdn.net/FireOfStar


你可能感兴趣的:(Andriod Fragment---添加用户界面)