Java 片段重写错误

Java 片段重写错误,java,android,Java,Android,嗨,我知道已经有一些问题被问到了,但我想知道为什么我的片段彼此重叠。我遵循所有以编程方式添加片段的解决方案,并使用容器替换它,但我的片段仍然重叠。。。但是在我在标签之间来回切换了几次之后,它就完美地工作了,因为片段不再重叠了。。。有人能帮我吗 多谢各位 以下是我以编程方式添加片段的方式: getSupportFragmentManager().beginTransaction() .add(R.id.leaderboard_layout, SingleplayerTab.newInstance(

嗨,我知道已经有一些问题被问到了,但我想知道为什么我的片段彼此重叠。我遵循所有以编程方式添加片段的解决方案,并使用容器替换它,但我的片段仍然重叠。。。但是在我在标签之间来回切换了几次之后,它就完美地工作了,因为片段不再重叠了。。。有人能帮我吗

多谢各位

以下是我以编程方式添加片段的方式:

getSupportFragmentManager().beginTransaction()
.add(R.id.leaderboard_layout, SingleplayerTab.newInstance(scores)).commit();
其中排行榜布局为框架布局:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/leaderboard_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".LeaderboardUI" >

</FrameLayout>
**编辑**

这是我试图删除和添加的代码

public void onTabSelected(Tab tab, android.app.FragmentTransaction ft) {
            // begin a fragment transaction and replace the current transaction
            FragmentTransaction fst = getSupportFragmentManager().beginTransaction();
            Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.leaderboard_layout);
            fst.remove(currentFragment);
            //fst.replace(R.id.leaderboard_layout, currentFragment);
            //fst.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
            fst.add(R.id.leaderboard_layout, currentFragment);
            fst.addToBackStack(null);
            fst.commit();
        }

05-26 09:35:12.688: E/AndroidRuntime(3108): FATAL EXCEPTION: main
05-26 09:35:12.688: E/AndroidRuntime(3108): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.zootypers/com.example.zootypers.ui.LeaderboardUI}: java.lang.NullPointerException
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.os.Looper.loop(Looper.java:137)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.app.ActivityThread.main(ActivityThread.java:5039)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at java.lang.reflect.Method.invokeNative(Native Method)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at java.lang.reflect.Method.invoke(Method.java:511)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at dalvik.system.NativeStart.main(Native Method)
05-26 09:35:12.688: E/AndroidRuntime(3108): Caused by: java.lang.NullPointerException
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.support.v4.app.BackStackRecord.doAddOp(BackStackRecord.java:394)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.support.v4.app.BackStackRecord.add(BackStackRecord.java:384)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at com.example.zootypers.ui.LeaderboardUI$LBTabListener.onTabSelected(LeaderboardUI.java:88)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at com.android.internal.app.ActionBarImpl.selectTab(ActionBarImpl.java:570)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at com.android.internal.app.ActionBarImpl.addTab(ActionBarImpl.java:499)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at com.android.internal.app.ActionBarImpl.addTab(ActionBarImpl.java:485)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at com.example.zootypers.ui.LeaderboardUI.onCreate(LeaderboardUI.java:42)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.app.Activity.performCreate(Activity.java:5104)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)

尝试删除然后添加(而不是替换)当我尝试时,我得到一个nullpointer异常…请参考此
public void onTabSelected(Tab tab, android.app.FragmentTransaction ft) {
            // begin a fragment transaction and replace the current transaction
            FragmentTransaction fst = getSupportFragmentManager().beginTransaction();
            Fragment currentFragment = getSupportFragmentManager().findFragmentById(R.id.leaderboard_layout);
            fst.remove(currentFragment);
            //fst.replace(R.id.leaderboard_layout, currentFragment);
            //fst.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
            fst.add(R.id.leaderboard_layout, currentFragment);
            fst.addToBackStack(null);
            fst.commit();
        }

05-26 09:35:12.688: E/AndroidRuntime(3108): FATAL EXCEPTION: main
05-26 09:35:12.688: E/AndroidRuntime(3108): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.zootypers/com.example.zootypers.ui.LeaderboardUI}: java.lang.NullPointerException
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.os.Handler.dispatchMessage(Handler.java:99)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.os.Looper.loop(Looper.java:137)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.app.ActivityThread.main(ActivityThread.java:5039)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at java.lang.reflect.Method.invokeNative(Native Method)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at java.lang.reflect.Method.invoke(Method.java:511)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at dalvik.system.NativeStart.main(Native Method)
05-26 09:35:12.688: E/AndroidRuntime(3108): Caused by: java.lang.NullPointerException
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.support.v4.app.BackStackRecord.doAddOp(BackStackRecord.java:394)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.support.v4.app.BackStackRecord.add(BackStackRecord.java:384)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at com.example.zootypers.ui.LeaderboardUI$LBTabListener.onTabSelected(LeaderboardUI.java:88)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at com.android.internal.app.ActionBarImpl.selectTab(ActionBarImpl.java:570)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at com.android.internal.app.ActionBarImpl.addTab(ActionBarImpl.java:499)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at com.android.internal.app.ActionBarImpl.addTab(ActionBarImpl.java:485)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at com.example.zootypers.ui.LeaderboardUI.onCreate(LeaderboardUI.java:42)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.app.Activity.performCreate(Activity.java:5104)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
05-26 09:35:12.688: E/AndroidRuntime(3108):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)