Ứng dụng này là một bài tập học tập cho tôi sử dụng các đoạn, trong số những thứ khác. Nó có một hoạt động duy nhất quản lý một số phân đoạn khác nhau. Đầu tiên là một ListFragment (A), hiển thị khi ứng dụng bắt đầu và tải các mục danh sách từ một con trỏ. Nhấp vào một mục danh sách sẽ thông báo cho hoạt động để thay thế ListFragment bằng một DetailFragment (B) cho mục đó. Nếu khi nhìn vào (B) Tôi xoay màn hình, tôi thấy (B) trên đầu trang của (A), như thế này:Các đoạn Android chồng chéo sau khi xoay màn hình
http://postimage.org/image/uhy016ds7/
đoán tốt nhất của tôi là nó đã làm với Android phá hủy và tái tạo hoạt động trên thay đổi cấu hình. Tôi tự hỏi giải pháp sạch nhất cho vấn đề này là gì. Một số đoạn mã theo sau, hãy cho tôi biết nếu có điều gì khác tôi nên đăng.
res/layout/home.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_container"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<fragment
android:id="@+id/fragment_place_list"
android:name="com.simbiosys.apps.foodfast.ui.PlaceListFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</fragment>
</FrameLayout>
MyActivity.onCreate
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
placeListFragment = (PlaceListFragment) getSupportFragmentManager().findFragmentById(
R.id.fragment_place_list);
}
MyActivity.showDetailPane
public void showDetailPane(String id, String reference) {
placeDetailFragment = PlaceDetailFragment.newInstance(id, reference);
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.addToBackStack(null);
ft.hide(placeListFragment);
ft.replace(R.id.fragment_container, placeDetailFragment);
ft.show(placeDetailFragment);
ft.commit();
}
bạn đã xem xét 'tài nguyên thay thế' chưa? http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources –
Vâng, tôi đang tập trung vào màn hình điện thoại vào lúc này.Bố trí cho ListFragment sẽ không có bất kỳ khác nhau trong cảnh quan anyway. Trong thực tế, không có bố cục xml cho ListFragment vì tất cả nó hiện có là ListView tích hợp sẵn. – Karakuri