这个应用程序是我使用碎片等学习练习.它有一个活动来管理一些不同的片段.第一个是ListFragment(A),它显示应用程序何时启动并从游标加载列表项.单击列表项会通知活动将ListFragment替换为该项目的DetailFragment(B).如果在看(B)的同时旋转屏幕,我会看到(B)在(A)之上,如下所示:
http://postimage.org/image/uhy016ds7/
我最好的猜测是它与Android销毁和重新创建配置更改活动有关.我想知道什么是这个问题最干净的解决方案.下面是一些代码片段,请告诉我是否应该发布其他内容.
RES /布局/ 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(); }