android Fragment的坑

来源:互联网 发布:sqlserver删除列 编辑:程序博客网 时间:2024/06/03 18:53
1、FragmentTransaction
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction在commit的之后不能复用,必须重新
fragmentTransaction = getSupportFragmentManager().beginTransaction();
不然会报错:
java.lang.IllegalStateException: commit already called

2、多个fragment需要新建和替换
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();if (fragment == null) {    fragment = new Fragment();    fragmentTransaction.add(R.id.content, fragment).commit();    if (currentFragment != null) {        // 1        fragmentManager.beginTransaction().hide(currentFragment).commit();    }} else {    fragmentTransaction.show(fragment).hide(currentFragment).commit();}currentFragment = fragment;
在1的地方,当currentFragment不为空时,需要隐藏掉,不然新的fragment会覆盖在currentFragment之上,在fragment的空白区域点击,会触发currentFragment在该区域的点击事件。
原创粉丝点击