我已经为我的Fragment添加了自定义键盘,现在我想在后退时实现关闭键盘的功能。
问题是每次屏幕旋转时都会调用
是否可能在不使用
class CustomKeyboard
{
public void init(Context context) {
//...
FragmentManager fragmentManager = ((Activity) context).getFragmentManager();
boolean fragmentPopped = fragmentManager.popBackStackImmediate(TAG, 0);
if (!fragmentPopped) {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.addToBackStack(TAG);
fragmentTransaction.commit();
}
}
}
问题是每次屏幕旋转时都会调用
init
,因为我在public void onActivityCreated(final Bundle savedInstanceState)
中创建了CustomKeyboard。
fragmentPopped
每次都是false,所以CustomKeyboard可能会被添加到BackStack超过一次。
我的问题: 是否可能在不使用
getBackStackEntryCount()
方法的情况下将BackStackEntry添加到BackStack中(如果不存在)?