2017-07-10 57 views
0

我正在編寫一個應用程序,使用BottomNavigationView和Fragment以編程方式更新佈局。BottomNavigationView setSelectedItemId崩潰

我想使用一個堆棧來允許用戶點擊返回並返回到前一個片段。我已經嘗試使用addToBackStack在新的片段膨脹後,但是當按下後退時,儘管佈局正確更改,但所選項目菜單不會隨之更改。

因此,我決定創建一個自定義的Fragment堆棧,並使用setSelectedItemId更改所選項目,但此操作會使應用程序崩潰。我正常使用了很多時間,而且我無法理解這種行爲。

感謝您的幫助。

public class MainActivity extends FragmentActivity { 

private FragmentManager fm = getSupportFragmentManager(); 
private Logger logger = Logger.getLogger("global"); 
private BottomNavigationView bnv; 
private CustomStack customStack = new CustomStack(); 

private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener 
     = new BottomNavigationView.OnNavigationItemSelectedListener() { 

    @Override 
    public boolean onNavigationItemSelected(@NonNull MenuItem item) { 

     Fragment centerFragment; 
     switch (item.getItemId()) { 

      case R.id.navigation_home: 
       centerFragment = new Fragment1(); 
       replaceCenterLayoutFragment(centerFragment); 
       customStack.push(centerFragment); 

       return true; 
      case R.id.navigation_map: 
       centerFragment = new Fragment2(); 
       bnv.setSelectedItemId(R.id.navigation_interest); 
       return true; 
      case R.id.navigation_interest: 
       centerFragment = new Fragment3(); 
       replaceCenterLayoutFragment(centerFragment); 
       customStack.push(centerFragment); 

       return true; 
      case R.id.navigation_notifications: 
       centerFragment = new Fragment4(); 
       replaceCenterLayoutFragment(centerFragment); 
       customStack.push(centerFragment); 

       return true; 
     } 

     return false; 
    } 

}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    bnv = (BottomNavigationView) findViewById(R.id.navigation); 
    bnv.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener); 

    FragmentTransaction ft1 = fm.beginTransaction(); 
    Board b = new Board(); 
    ft1.add(R.id.center_layout, new Fragment1()).commit(); 
    customStack.push(b); 
} 

public boolean onKeyDown(int keyCode, KeyEvent event) { 

    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     customStack.pop(); 
     replaceCenterLayoutFragment(customStack.top()); 
    } 
    return false; 
} 

private void replaceCenterLayoutFragment(Fragment f){ 
    FragmentTransaction ft1 = fm.beginTransaction(); 
    ft1.replace(R.id.center_layout, f).commit(); 
    syncMenuItem(f); 
} 

private void syncMenuItem(Fragment f){ 
    if(f instanceof Fragment1) 
     bnv.setSelectedItemId(R.id.p1); 
    if(f instanceof Fragment2) 
     bnv.setSelectedItemId(R.id.p2); 
    if(f instanceof Fragment3) 
     bnv.setSelectedItemId(R.id.p3); 
    if(f instanceof Fragment4) 
     bnv.setSelectedItemId(R.id.p4); 
} 
} 

這是我的自定義堆棧

public class CustomStack { 

private ArrayList<Fragment> menu ; 
private Logger logger = Logger.getLogger("global"); 

public CustomStack(){ 
    menu = new ArrayList<>(); 
} 

public void push(Fragment i){ 
    menu.add(i); 
} 

public Fragment pop(){ 
    if(menu.size() > 0) { 
     int s = menu.size() -1; 
     Fragment app = menu.get(s); 
     menu.remove(s); 
     return app; 
    } 
    else{ 
     return null; 
    } 
} 

public Fragment top(){ 
    if(menu.size() > 0) 
     return menu.get(menu.size() -1); 
    else 
     return null; 
} 

public boolean isEmpty(){ 
    return menu.size() > 0; 
} 

} 

和LogCatPage

07-10 20:31:07.879 28384-28384/? I/art: Late-enabling -Xcheck:jni 
07-10 20:31:07.970 28384-28384/com.example.longsky.peoople W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=generic --instruction-set-features=default --dex-file=/data/app/com.example.longsky.peoople-2/split_lib_dependencies_apk.apk --oat-file=/data/dalvik-cache/arm64/[email protected]@[email protected][email protected]) because non-0 exit status 
07-10 20:31:08.145 28384-28384/com.example.longsky.peoople W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=generic --instruction-set-features=default --dex-file=/data/app/com.example.longsky.peoople-2/split_lib_slice_0_apk.apk --oat-file=/data/dalvik-cache/arm64/[email protected]@[email protected][email protected]) because non-0 exit status 
07-10 20:31:08.187 28384-28384/com.example.longsky.peoople W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=generic --instruction-set-features=default --dex-file=/data/app/com.example.longsky.peoople-2/split_lib_slice_1_apk.apk --oat-file=/data/dalvik-cache/arm64/[email protected]@[email protected][email protected]) because non-0 exit status 
07-10 20:31:08.224 28384-28384/com.example.longsky.peoople W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=generic --instruction-set-features=default --dex-file=/data/app/com.example.longsky.peoople-2/split_lib_slice_2_apk.apk --oat-file=/data/dalvik-cache/arm64/[email protected]@[email protected][email protected]) because non-0 exit status 
07-10 20:31:08.264 28384-28384/com.example.longsky.peoople W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=generic --instruction-set-features=default --dex-file=/data/app/com.example.longsky.peoople-2/split_lib_slice_3_apk.apk --oat-file=/data/dalvik-cache/arm64/[email protected]@[email protected][email protected]) because non-0 exit status 
07-10 20:31:08.311 28384-28384/com.example.longsky.peoople W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=generic --instruction-set-features=default --dex-file=/data/app/com.example.longsky.peoople-2/split_lib_slice_4_apk.apk --oat-file=/data/dalvik-cache/arm64/[email protected]@[email protected][email protected]) because non-0 exit status 
07-10 20:31:08.347 28384-28384/com.example.longsky.peoople W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=generic --instruction-set-features=default --dex-file=/data/app/com.example.longsky.peoople-2/split_lib_slice_5_apk.apk --oat-file=/data/dalvik-cache/arm64/[email protected]@[email protected][email protected]) because non-0 exit status 
07-10 20:31:08.387 28384-28384/com.example.longsky.peoople W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=generic --instruction-set-features=default --dex-file=/data/app/com.example.longsky.peoople-2/split_lib_slice_6_apk.apk --oat-file=/data/dalvik-cache/arm64/[email protected]@[email protected][email protected]) because non-0 exit status 
07-10 20:31:08.427 28384-28384/com.example.longsky.peoople W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=generic --instruction-set-features=default --dex-file=/data/app/com.example.longsky.peoople-2/split_lib_slice_7_apk.apk --oat-file=/data/dalvik-cache/arm64/[email protected]@[email protected][email protected]) because non-0 exit status 
07-10 20:31:08.463 28384-28384/com.example.longsky.peoople W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=generic --instruction-set-features=default --dex-file=/data/app/com.example.longsky.peoople-2/split_lib_slice_8_apk.apk --oat-file=/data/dalvik-cache/arm64/[email protected]@[email protected][email protected]) because non-0 exit status 
07-10 20:31:08.508 28384-28384/com.example.longsky.peoople W/art: Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=generic --instruction-set-features=default --dex-file=/data/app/com.example.longsky.peoople-2/split_lib_slice_9_apk.apk --oat-file=/data/dalvik-cache/arm64/[email protected]@[email protected][email protected]) because non-0 exit status 
07-10 20:31:08.509 28384-28384/com.example.longsky.peoople W/System: ClassLoader referenced unknown path: /data/app/com.example.longsky.peoople-2/lib/arm64 
07-10 20:31:08.512 28384-28384/com.example.longsky.peoople I/InstantRun: starting instant run server: is main process 
07-10 20:31:08.600 28384-28384/com.example.longsky.peoople W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable 
07-10 20:31:08.655 28384-28499/com.example.longsky.peoople E/AbstractTracker: Can't create handler inside thread that has not called Looper.prepare() 
07-10 20:31:08.655 28384-28499/com.example.longsky.peoople D/AppTracker: App Event: start 
07-10 20:31:08.661 28384-28501/com.example.longsky.peoople D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true 
07-10 20:31:08.679 28384-28501/com.example.longsky.peoople I/Adreno: QUALCOMM build     : 183c040, Iff84fb1103 
                    Build Date      : 03/18/16 
                    OpenGL ES Shader Compiler Version: XE031.06.00.02 
                    Local Branch      : 
                    Remote Branch     : refs/tags/AU_LINUX_ANDROID_LA.BF64.1.2.2_RB4.06.00.01.180.031 
                    Remote Branch     : NONE 
                    Reconstruct Branch    : NOTHING 
07-10 20:31:08.686 28384-28501/com.example.longsky.peoople I/OpenGLRenderer: Initialized EGL, version 1.4 
07-10 20:31:10.516 28384-28384/com.example.longsky.peoople D/AndroidRuntime: Shutting down VM 
07-10 20:31:10.592 28384-28384/com.example.longsky.peoople E/AndroidRuntime: FATAL EXCEPTION: main 
                      Process: com.example.longsky.peoople, PID: 28384 
                      java.lang.StackOverflowError: stack size 8MB 
                       at com.example.longsky.peoople.MainActivity.replaceCenterLayoutFragment(MainActivity.java:96) 
                       at com.example.longsky.peoople.MainActivity.access$000(MainActivity.java:15) 
                       at com.example.longsky.peoople.MainActivity$1.onNavigationItemSelected(MainActivity.java:39) 
                       at android.support.design.widget.BottomNavigationView$1.onMenuItemSelected(BottomNavigationView.java:184) 
                       at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822) 
                       at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:156) 
                       at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:969) 
                       at android.support.design.widget.BottomNavigationView.setSelectedItemId(BottomNavigationView.java:341) 
                       at com.example.longsky.peoople.MainActivity.replaceCenterLayoutFragment(MainActivity.java:96) 
                       at com.example.longsky.peoople.MainActivity.access$000(MainActivity.java:15) 
                       at com.example.longsky.peoople.MainActivity$1.onNavigationItemSelected(MainActivity.java:39) 
                       at android.support.design.widget.BottomNavigationView$1.onMenuItemSelected(BottomNavigationView.java:184) 
                       at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822) 
                       at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:156) 
                       at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:969) 
                       at android.support.design.widget.BottomNavigationView.setSelectedItemId(BottomNavigationView.java:341) 
                       at com.example.longsky.peoople.MainActivity.replaceCenterLayoutFragment(MainActivity.java:96) 
                       at com.example.longsky.peoople.MainActivity.access$000(MainActivity.java:15) 
                       at com.example.longsky.peoople.MainActivity$1.onNavigationItemSelected(MainActivity.java:39) 
                       at android.support.design.widget.BottomNavigationView$1.onMenuItemSelected(BottomNavigationView.java:184) 
                       at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822) 
                       at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:156) 
                       at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:969) 
                       at android.support.design.widget.BottomNavigationView.setSelectedItemId(BottomNavigationView.java:341) 
                       at com.example.longsky.peoople.MainActivity.replaceCenterLayoutFragment(MainActivity.java:96) 
                       at com.example.longsky.peoople.MainActivity.access$000(MainActivity.java:15) 
                       at com.example.longsky.peoople.MainActivity$1.onNavigationItemSelected(MainActivity.java:39) 
                       at android.support.design.widget.BottomNavigationView$1.onMenuItemSelected(BottomNavigationView.java:184) 
                       at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822) 
                       at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:156) 
                       at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:969) 
                       at android.support.design.widget.BottomNavigationView.setSelectedItemId(BottomNavigationView.java:341) 
                       at com.example.longsky.peoople.MainActivity.replaceCenterLayoutFragment(MainActivity.java:96) 
                       at com.example.longsky.peoople.MainActivity.access$000(MainActivity.java:15) 
                       at com.example.longsky.peoople.MainActivity$1.onNavigationItemSelected(MainActivity.java:39) 
                       at android.support.design.widget.BottomNavigationView$1.onMenuItemSelected(BottomNavigationView.java:184) 
                       at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822) 
                       at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:156) 
                       at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:969) 
                       at android.support.design.widget.BottomNavigationView.setSelectedItemId(BottomNavigationView.java:341) 
                       at com.example.longsky.peoople.MainActivity.replaceCenterLayoutFragment(MainActivity.java:96) 
                       at com.example.longsky.peoople.MainActivity.access$000(MainActivity.java:15) 
                       at com.example.longsky.peoople.MainActivity$1.onNavigationItemSelected(MainActivity.java:39) 
                       at android.support.d 
07-10 20:31:10.594 28384-28384/com.example.longsky.peoople D/AppTracker: App Event: crash 
07-10 20:31:10.638 28384-28384/com.example.longsky.peoople D/Error: ERR: exClass=java.lang.StackOverflowError 
07-10 20:31:10.638 28384-28384/com.example.longsky.peoople D/Error: ERR: exMsg=stack size 8MB 
07-10 20:31:10.638 28384-28384/com.example.longsky.peoople D/Error: ERR: file=MainActivity.java 
07-10 20:31:10.638 28384-28384/com.example.longsky.peoople D/Error: ERR: class=com.example.longsky.peoople.MainActivity 
07-10 20:31:10.638 28384-28384/com.example.longsky.peoople D/Error: ERR: method=replaceCenterLayoutFragment line=96 
07-10 20:31:10.647 28384-28384/com.example.longsky.peoople D/Error: ERR: stack=java.lang.StackOverflowError: stack size 8MB 
                     at com.example.longsky.peoople.MainActivity.replaceCenterLayoutFragment(MainActivity.java:96) 
                     at com.example.longsky.peoople.MainActivity.access$000(MainActivity.java:15) 
                     at com.example.longsky.peoople.MainActivity$1.onNavigationItemSelected(MainActivity.java:39) 
                     at android.support.design.widget.BottomNavigationView$1.onMenuItemSelected(BottomNavigationView.java:184) 
                     at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822) 
                     at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:156) 
                     at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:969) 
                     at android.support.design.widget.BottomNavigationView.setSelectedItemId(BottomNavigationView.java:341) 
                     at com.example.longsky.peoople.MainActivity.replaceCenterLayoutFragment(MainActivity.java:96) 
                     at com.example.longsky.peoople.MainActivity.access$000(MainActivity.java:15) 
                     at com.example.longsky.peoople.MainActivity$1.onNavigationItemSelected(MainActivity.java:39) 
                     at android.support.design.widget.BottomNavigationView$1.onMenuItemSelected(BottomNavigationView.java:184) 
                     at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822) 
                     at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:156) 
                     at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:969) 
                     at android.support.design.widget.BottomNavigationView.setSelectedItemId(BottomNavigationView.java:341) 
                     at com.example.longsky.peoople.MainActivity.replaceCenterLayoutFragment(MainActivity.java:96) 
                     at com.example.longsky.peoople.MainActivity.access$000(MainActivity.java:15) 
                     at com.example.longsky.peoople.MainActivity$1.onNavigationItemSelected(MainActivity.java:39) 
                     at android.support.design.widget.BottomNavigationView$1.onMenuItemSelected(BottomNavigationView.java:184) 
                     at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822) 
                     at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:156) 
                     at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:969) 
                     at android.support.design.widget.BottomNavigationView.setSelectedItemId(BottomNavigationView.java:341) 
                     at com.example.longsky.peoople.MainActivity.replaceCenterLayoutFragment(MainActivity.java:96) 
                     at com.example.longsky.peoople.MainActivity.access$000(MainActivity.java:15) 
                     at com.example.longsky.peoople.MainActivity$1.onNavigationItemSelected(MainActivity.java:39) 
                     at android.support.design.widget.BottomNavigationView$1.onMenuItemSelected(BottomNavigationView.java:184) 
                     at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822) 
                     at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:156) 
                     at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:969) 
                     at android.support.design.widget.BottomNavigationView.setSelectedItemId(BottomNavigationView.java:341) 
                     at com.example.longsky.peoople.MainActivity.replaceCenterLayoutFragment(MainActivity.java:96) 
                     at com.example.longsky.peoople.MainActivity.access$000(MainActivity.java:15) 
                     at com.example.longsky.peoople.MainActivity$1.onNavigationItemSelected(MainActivity.java:39) 
                     at android.support.design.widget.BottomNavigationView$1.onMenuItemSelected(BottomNavigationView.java:184) 
                     at android.support.v7.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:822) 
                     at android.support.v7.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:156) 
                     at android.support.v7.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:969) 
                     at android.support.design.widget.BottomNavigationView.setSelectedItemId(BottomNavigationView.java:341) 
                     at com.example.longsky.peoople.MainActivity.replaceCenterLayoutFragment(MainActivity.java:96) 
                     at com.example.longsky.peoople.MainActivity.access$000(MainActivity.java:15) 
                     at com.example.longsky.peoople.MainActivity$1.onNavigationItemSelected(MainActivity.java:39) 
                     at android.support.design.widget.BottomNavigationView$1.onMenuItemSelected(BottomNavigati 
07-10 20:31:10.647 28384-28384/com.example.longsky.peoople D/Error: ERR: TOTAL BYTES WRITTEN: 862560 
07-10 20:31:10.695 28384-28384/com.example.longsky.peoople I/Process: Sending signal. PID: 28384 SIG: 9 

回答

1

問題的根源是,你setSelectedItemId電話監聽器,它會調用replaceCenterLayoutFragment,它將調用setSelectedItemId,等等。

哈克的解決將是以下

private void replaceCenterLayoutFragment(Fragment f){ 
    FragmentTransaction ft1 = fm.beginTransaction(); 
    ft1.replace(R.id.center_layout, f).commit(); 

    bnv.setOnNavigationItemSelectedListener(null); 
    syncMenuItem(f); 
    bnv.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener); 
} 
+0

我感謝你的支持時間。問題是我的問題不是堆棧,而是底部導航視圖選定項目的更新,而您的解決方案對此無濟於事。你認爲用堆棧修復它嗎? –

+0

是啊,我想這是真的,我沒有考慮到你想爲*底部導航視圖*的選項卡創建一個堆棧。雖然我堅持認爲我的堆棧將在未來爲您解決一系列問題(嘗試將您的應用放在後臺,單擊終止然後重新啓動它!),但我已經爲問題添加了實際解決方案。 – EpicPandaForce

+0

謝謝,現在完全工作。我只是在你的hacky修補程序之前和更換碎片之後使用。真的很感謝你 –

0

你能提供在logcat的輸出?所以,我可以針點錯誤

+0

我添加了logcat的。我從來沒有見過這樣的東西 –

+0

試着在每個'case'子句內部創建CenterFragment變量&不要將片段推送到堆棧,而是把一些小東西像int,字符串唯一標識片段 –