tôi đã cùng một vấn đề, và nó vì sử dụng FrameLayout, Trước tiên, bạn phải kiểm tra xem đoạn của bạn đã thêm vào hoạt động:
String TagName = "F";
Thêm một đoạn mà không một giao diện người dùng Nếu bạn muốn nhận được mảnh từ hoạt động sau này, bạn cần phải sử dụng findFragmentByTag(). "Google" http://developer.android.com/guide/components/fragments.html#Adding
Fragement F = getFragmentManager().findFragmentByTag(TagName);
Sau đó kiểm tra
if(F == null) {
F = new F();
getFragmentManager()
.beginTransaction()
.add(R.id.container, F, TagName)
.commit();
}
mục tiêu ở đây là để tránh thêm hoặc tạo ra trường hợp mới của mảnh, mà vẫn tồn tại trong quá trình thay đổi cấu hình mà gây ra vấn đề khi sử dụng FrameLayout làm vùng chứa.
Giải pháp 2 (Đơn giản): Điều duy nhất bạn phải làm ở đây là thay đổi vùng chứa của bạn thành cũ: LinearLayout, và thế là xong. nhưng theo ý kiến của tôi, đây không phải là giải pháp tốt nhất vì nhiều trường hợp của đoạn.
Hy vọng trợ giúp này;
bản sao có thể có của [Chế độ xem danh sách Android ListFragment chồng chéo lên thay đổi hướng) [http://stackoverflow.com/questions/11209412/android-listfragment-list-view-overlapping-on-orientation-change) – Qw4z1