如何在方向更改时停止重叠片段?

时间:2016-04-12 00:19:38

标签: android android-fragments screen-orientation fragmentmanager

我有一个使用片段显示数据的应用。下面显示的主要活动控制片段,里面有一个recyclerview,当我进行方向更改时,我看起来像一个Recyclerview重叠另一个。在每次方向更改时,都会创建另一个片段。我该如何解决这个问题?任何帮助都会很棒

public class MainActivity extends AppCompatActivity
        implements NotesFragment.OnFragmentInteractionListener, EditFragment.SaveFragmentItem {

    EditFragment editFrag;
    NotesFragment notesFrag;

    FragmentManager fragmentManager;
    FragmentTransaction fragmentTransaction;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        notesFrag = new NotesFragment();
        editFrag = new EditFragment();

        fragmentManager = getSupportFragmentManager();
        fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.add(R.id.container1, notesFrag);
        fragmentTransaction.commit();

    }

   ....
}

1 个答案:

答案 0 :(得分:3)

我弄清楚发生了什么。这是令人讨厌的代码行:

    fragmentTransaction.add(R.id.container1, notesFrag);

我需要使用replace()方法,在每次方向更改后替换片段,而不是将片段的另一个实例添加到FragmentManager。简单的答案,但令人沮丧;)