Android 如何在方向更改时停止重叠碎片?
我有一个应用程序,它使用片段来显示数据。下面显示的主要活动控制内部有一个recyclerview的片段,当我改变方向时,我会看到一个recyclerview与另一个重叠。在每次方向改变时,都会创建另一个片段。我该如何解决这个问题?任何帮助都会很好Android 如何在方向更改时停止重叠碎片?,android,android-fragments,screen-orientation,fragmentmanager,Android,Android Fragments,Screen Orientation,Fragmentmanager,我有一个应用程序,它使用片段来显示数据。下面显示的主要活动控制内部有一个recyclerview的片段,当我改变方向时,我会看到一个recyclerview与另一个重叠。在每次方向改变时,都会创建另一个片段。我该如何解决这个问题?任何帮助都会很好 public class MainActivity extends AppCompatActivity implements NotesFragment.OnFragmentInteractionListener, EditFragme
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();
}
....
}
我知道发生了什么。这是一行令人不快的代码:
fragmentTransaction.add(R.id.container1, notesFrag);
我需要使用
replace()
方法,在每次方向更改后替换片段,而不是将片段的另一个实例添加到FragmentManager。答案很简单,但令人沮丧;) 您还可以使用add函数向xml添加背景色,这样就不会显示以前的布局