首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

平添Fragment机制

2013-08-04 
添加Fragment机制配置(Configuration?)改变是Android应用生命周期的一部分,如果发生了该事件(屏幕从横屏换

添加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使用的更多文档请参考开发者指南。

?

热点排行