项目需求,需要在app中使用fragment,实现view的显示与隐藏,遇到一些小问题,在此记录一下。

功能:点击按钮,fragment出现,再次点击,fragment隐藏;

有问题的代码:

@Override    public void onClick(View v) {        FragmentManager fragmentManager = getFragmentManager();        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();        switch (v.getId()) {            case R.id.openCamBtn:                if (camFlag == 0) {                    fragmentTransaction.add(R.id.containerFL, CamFragment.newInstance(), "CamFragmentOpen");                    camFlag =1;                } else {                    fragmentTransaction.remove(fragment);                    camFlag = 0;                }                fragmentTransaction.commit();                break;        }    }

此代码的问题是,点击按钮,fragment可以显示,但是再次点击,无法remove当前fragment;

解决问题的代码:

@Override    public void onClick(View v) {        FragmentManager fragmentManager = getFragmentManager();        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();        switch (v.getId()) {            case R.id.openCamBtn:                if (camFlag == 0) {                    fragmentTransaction.add(R.id.containerFL, CamFragment.newInstance(), "CamFragmentOpen");                    camFlag =1;                } else {                    Fragment fragment=fragmentManager.findFragmentByTag("CamFragmentOpen");                    fragmentTransaction.remove(fragment);                    camFlag = 0;                }                fragmentTransaction.commit();                break;        }    }

解决的方法:

通过FragmentManager的findFragmentByTag()方法获取到待移除fragment的TAG,再将其传入FragmentTransaction的remove()方法即可;

--------------------------------------------------------------------------------------

另外,注意add或remove后的commit();

记录备忘于2018年4月23日22:09:25

更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. android.app.Activity 的介绍
  3. Android(安卓)RIL 本地代码(c/c++) 和 Java代码部分分析
  4. Android通用Adapter使用例子
  5. Android之——jni通用工具方法
  6. android报The content of the adapter has changed but ListView
  7. Android中BottomNavigationView切换时去除效果
  8. 【Android之隐藏状态栏、设置全屏、取消全屏】
  9. Android(安卓)Mediarecorder录制的时候屏蔽掉声音

随机推荐

  1. Android(安卓)手机号码格式验证
  2. Android(安卓)百度 Map----定位功能
  3. Android手势操作(一)
  4. Leetcode: Android(安卓)Unlock Patterns
  5. java.lang.ClassNotFoundException:
  6. Android(安卓)EditText简单实现右侧点击
  7. 使用manifestPlaceholders
  8. 监听BatteryManager.EXTRA_PLUGGED无效的
  9. 编译android平台上的webrtc-chromium
  10. Android(安卓)实现卫星菜单(精简版)