一个片段被绘制在另一个片段之上

时间:2015-02-08 09:51:00

标签: android android-fragments

我有2个片段,一个用于游戏,一个用于分数。 当我从游戏片段移动到得分片段时它效果很好,但是当我试图回到游戏时,它会在同一个容器上绘制两个片段(即使使用移除功能)。

        public void nextLvl(Fragment current, Fragment next, String score, String nextTag, int LvlTime){
        Bundle args = new Bundle();
        args.putString("scoreKey", score);
        args.putInt("levelTime", LvlTime);
        next.setArguments(args);

        FragmentManager fm = getFragmentManager();
        if (fm != null){
            FragmentTransaction ft = fm.beginTransaction();
            ft.remove(current);
            ft.add(R.id.fragment_place, next, nextTag);
            ft.commit();
            Log.d("FM","MOVED TO "+next.toString());
        }else{
            Log.d("FM","fm is null");
        }
  }

这是我用来在片段之间移动的代码。

这是一张图片,用于展示我在"彼此之间绘制的意思":

http://i.imgur.com/Ylw8iPV.png

1 =游戏片段。

2 =得分片段。

3 =从Score片段移动到Game片段的结果。

2 个答案:

答案 0 :(得分:1)

使用替换片段而不是添加

示例:

 FragmentTransaction ft = fm.beginTransaction();
        ft.replace(R.id.fragment_place, next, nextTag);
        ft.commit();

答案 1 :(得分:0)

尝试使用ft.replace代替remove()add()

示例:

ft.beginTransaction()
                    .replace(R.id.container, fragment)
                    .commit();