Fragment问题
多个Fragment使用show和hide来切换时的画面重叠的问题
一、 Fragment出现重复add的异常 原因:当添加Fragment的方法transaction.add(R.id.fragment_layout, fragment);出现在点击事件中触发,出现重复添加异常,点击过快产生的(即使加入fragment.isAdded()也是无效的)。所以需要自己根据需求在加一层判断(比如阻止连续点击)。
transaction = fragmentManager.beginTransaction(); Fragment fragment = fragmentList.get(idx); if (!fragment.isAdded()) {//判断这个Fragment有没有添加过 transaction.add(R.id.fragment_layout, fragment); } transaction.commit(); 二、 Fragment出现重叠 原因:当Fragment依附的Activity因内存不足而被销毁时,那些Fragment没有被回收,当Activity从新启动时候那些旧的Fragment会再次覆盖上面 /** * 为了内存不足时候Fragment和MainActivity同时销毁. * <p>1.重写onSaveInstanceState * <p>2.注释super.onSaveInstanceState(outState)或删除。可阻止activity保存fragment的状态 */ publicvoid onSaveInstanceState(Bundle outState) { //super.onSaveInstanceState(outState); } |