我有以下问题:Android替换片段不会隐藏底层片段
我的应用程序由几个动态添加的片段组成。有一个片段带有一个按钮和一个textedit(称为'fragA')。
如果我点击按钮,我想用一些文本(称为'fragB')显示不同的片段。我这样做是用下面的代码(在Fraga类):
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Fragment howFragment = new HowFragment();
FragmentTransaction transaction = null;
transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.flQuestion, howFragment);
transaction.addToBackStack(null);
transaction.commit();
}
});
现在的问题是这样的:
当我推弗拉加按钮片段(fragB)被创建并显示在屏幕上,但当我按下位于按钮上的位置时,它会创建一个新的片段(fragB)。此外,如果我推fragA位于文本位于它位于fragB打开键盘..
它看起来像FragB只是覆盖fragA而不取代它。
我也想做到这一点时,我Swype输入到fragB被删除,弗拉加只是正常显示下一个片段(状态时,不按按钮)
更新#
当试图添加和删除这是下面的logcat输出:
FATAL EXCEPTION: main
java.lang.IllegalArgumentException: No view found for id 0x7f090015 (com.example.eindwerkappv1:id/flQuestion) for fragment HowFragment{419c93c8 #3 id=0x7f090015}
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:903)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1444)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:429)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4441)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
at dalvik.system.NativeStart.main(Native Method)
我已经试过,但然后应用程序崩溃,我可能不得不说,我没有在XML布局文件defiened片段,我动态地添加它们。 transaction.add(R.id.flQuestion,howFragment).remove((Fragment)btn.getTag())。commit; – 2013-03-16 11:55:40
该应用程序与什么logcat输出崩溃?... – 2013-03-16 12:34:34
致命例外:主 java.lang.IllegalArgumentException:未找到id 0x7f090015(com.example.eindwerkappv1:id/flQuestion)的片段HowFragment {419c93c8#3 id = 0x7f090015} – 2013-03-16 12:42:52