zoukankan      html  css  js  c++  java
  • 添加Fragment注意事项

    配置(Configuration )改变是Android应用生命周期的一部分,如果发生了该事件(屏幕从横屏换行为竖屏),就会导致Activity被销毁然后重新创建。就算您在配置文件中设定Activity为竖屏显示的 也无法避免,应为Android应用配置改变的情况有很多种。

    如果发生了这种情况,Fragment也会被销毁然后重新创建。如果您是在运行时(在Java代码中添加Fragment到Activity,不是在Activity的布局文件中声明的)创建的,则需要额外小心:

    当Activity第一次创建的时候,您需要添加Fragment;当由于配置条件改变导致Activity被重新创建则无需再次添加Fragment(系统会自动添加Fragment)。

    所以问题来了,您如何知道何时应该在onCreate函数中添加Fragment呢?

    判断的方法就是检查savedInstanceState 参数,如果该参数为null说明是第一次创建,需要添加Fragment;如果不是null则无需添加。代码如下:

    public class MyActivity extends Activity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstnaceState);
            // Only add fragment if this is the initial Activity creation
            if (savedInstanceState == null) {
                FragmentManager fragmentManager = 
                         getFragmentManager()
                FragmentTransaction fragmentTransaction = 
                         fragmentManager.beginTransaction();
                ExampleFragment fragment = new ExampleFragment();
                fragmentTransaction.add(R.id.fragment_container, fragment);
                fragmentTransaction.commit();
            } else {
                // Don't add the fragment!
                // (and use savedInstanceState to restore Activity state)
            }
        }
    }

    如果您没有按照上面的方式添加Fragment,则您的应用可能会出现一种奇怪的现象,同样的Fragment添加了多次。 关于Fragment使用的更多文档请参考开发者指南



    转载:http://blog.chengyunfeng.com/?p=502#ixzz31JbFGWAu

  • 相关阅读:
    OC3(字符串,值类)
    OC2(初始化方法)
    OC1(类和对象)
    postgresql 时间戳格式为5分钟、15分钟
    centos添加ftp用户并禁止外切目录
    postgresql 判断日期是否合法
    tigerVNC的简单使用教程(CentOS的远程桌面连接)
    linux awk解析csv文件
    由windows向linux上传下载文件方法
    codeblocks linux编译告警乱码解决办法
  • 原文地址:https://www.cnblogs.com/krislight1105/p/3748379.html
Copyright © 2011-2022 走看看