如果不存在,如何将BackStackEntry添加到BackStack

Yul*_*mok 8 android back-stack fragment-backstack

我已经为我的片段添加了自定义键盘,现在我想在背面按下时实现关闭键盘.

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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

init每次屏幕旋转时都会出现问题,因为我创建了CustomKeyboardpublic void onActivityCreated(final Bundle savedInstanceState)

fragmentPopped=false 每次都可以将CustomKeyboard添加到BackStack中多次.

我的问题:
如果不使用getBackStackEntryCount()方法,是否可以将BackStackEntry添加到BackStack ?

Sac*_*inS 2

尝试以下更新的代码。

public void init(Context context) { 

    FragmentManager fragmentManager = ((Activity) context).getFragmentManager();
    boolean fragmentPopped = fragmentManager.popBackStack(TAG, 0);
    if (!fragmentPopped) {
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.addToBackStack(TAG);
        fragmentTransaction.commit();
    }
}
Run Code Online (Sandbox Code Playgroud)