这个应用是我使用碎片等技术的学习练习。它有一个管理几个不同碎片的单一活动。第一个碎片是一个列表碎片(A),当应用程序启动并从游标加载列表项时显示。点击列表项会通知活动将该列表碎片替换为详细信息碎片(B)。如果在查看(B)时旋转屏幕,我会看到(B)覆盖在(A)上面,就像这样:
http://postimage.org/image/uhy016ds7/
我的最佳猜测是这与Android在配置更改时销毁和重新创建活动有关。我想知道此问题的最清洁解决方案。以下是一些代码片段,请告诉我是否还需要发布其他内容。
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();
}
替代资源
?http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources - Bill Gary