【发布时间】:2016-09-25 19:18:17
【问题描述】:
我已经在我的 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。
我的问题:
如果不存在而不使用,是否可以将 BackStackEntry 添加到 BackStack
getBackStackEntryCount()方法?
【问题讨论】:
-
您想直接回答您的问题还是想解决您的多次通话问题?
-
@Elltz 我想直接回答我的问题
-
我相信您的代码中某处存在错误。您应该发布更多代码。
-
您想说您必须使用 getBackStackEntryCount() 以外的其他方法检查回栈条目,如果它为 0,则添加片段对吗?
标签: android back-stack fragment-backstack