2013-10-26 48 views
0

我使用ActionBar.TabListener为这里列出: Action Bar switching tabs automatically:动作条选项卡的空白片段切换时标签:

我加入与tablistener一些标签如下

标签1 - >片段 - >片段b - > Fragment c Tab 2->片段d

我点击Tab 1,从a到b到c。当我停留在Tab 1上,并且我在'a'中时,点击返回到b,点击b返回到'a'。这是因为我在b和c中添加了addtoBackStack()。但是,当我在Fragent'c'中时,添加了addtoBackStack()。并单击Tab 2并返回到Tab 1并单击Back,我会看到空白的白色选项卡。

这似乎是预期的,因为ft.attach()根据文档重新创建视图。

我到目前为止试过的东西: *使用fragmentTransaction在tablistener的onselected()方法中向backstack显式添加'a'。

如何我才去标签2保持在标签1视图层次结构并重新创建等级时,则回到标签1,这样当我在标签C,我可以去标签B和A?

编辑: (还加标签片段质疑) 由表2

W/System.err(26823): java.lang.IllegalStateException: Fragment already added: SearchTab{427a29a8 #1 id=0x1020002 search} 
W/System.err(26823): at android.app.FragmentManagerImpl.addFragment(FragmentManager.java:1146) 
W/System.err(26823): at android.app.BackStackRecord.popFromBackStack(BackStackRecord.java:722) 
W/System.err(26823): at android.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:1504) 
W/System.err(26823): at android.app.FragmentManagerImpl.popBackStackImmediate(FragmentManager.java:493) 
W/System.err(26823): at android.app.Activity.onBackPressed(Activity.java:2220) 
W/System.err(26823): at android.app.Activity.onKeyUp(Activity.java:2194) 
W/System.err(26823): at android.view.KeyEvent.dispatch(KeyEvent.java:2782) 
W/System.err(26823): at android.app.Activity.dispatchKeyEvent(Activity.java:2428) 
W/System.err(26823): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2076) 
W/System.err(26823): at android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:4192) 
W/System.err(26823): at android.view.ViewRootImpl.handleImeFinishedEvent(ViewRootImpl.java:4121) 
W/System.err(26823): at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3169) 
W/System.err(26823): at android.os.Handler.dispatchMessage(Handler.java:99) 
W/System.err(26823): at android.os.Looper.loop(Looper.java:137) 
W/System.err(26823): at android.app.ActivityThread.main(ActivityThread.java:5328) 
W/System.err(26823): at java.lang.reflect.Method.invokeNative(Native Method) 
W/System.err(26823): at java.lang.reflect.Method.invoke(Method.java:511) 
W/System.err(26823): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 
W/System.err(26823): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 
W/System.err(26823): at dalvik.system.NativeStart.main(Native Method) 

回答

0

未来这是问前一阵子后,按回Tab键1键时,我得到了下面的堆栈跟踪,但您可以尝试实现自己的TabListener,并在onTabSelected()中执行FragmentTransation.show(),并在onTabUnselected()中执行FragmentTransaction.hide()。