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

  • 相关阅读:
    easyui datagrid 前后台代码
    JVM
    序列化
    Android UI设计
    多线程
    泛型
    字符串
    B+树:MySql数据库索引是如何实现的
    大数据判存算法:海量数据中快速判断某个数据是否存在
    陌生单词
  • 原文地址:https://www.cnblogs.com/krislight1105/p/3748379.html
Copyright © 2011-2022 走看看