我使用DrawerLayout
作为浏览应用各种屏幕的方式。我在抽屉里有几个不同的物品,如:
其中每一个都是Fragment
(主要是ListFragment
),然后您可以通过点击列表中的一行来更深入地导航到另一个Fragment
。例如,查看照片库列表,然后点击其中一个,它将显示照片。
我可以点击抽屉图标或从左侧滑动以显示抽屉并选择任何选项,它将正确显示Fragment
。但是,当我进入更深层片段(转到照片然后点击图库以查看照片列表)时,抽屉图标不会更改为后退图标并允许用户导航回上一个Fragment
。我可以点击硬件后退按钮,它会返回,但不是按钮。
在MainActivity
我有:
getActionBar().setDisplayHomeAsUpEnabled(true);
在Photos
中,当点击代表我的画廊的行时:
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
PUCObjects.PUCPhotoGalleryItem item = items.get(position);
FragmentTransaction ft = getFragmentManager().beginTransaction();
//ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);
PUCPhotosGridFragment newFragment = new PUCPhotosGridFragment();
newFragment.galleryId = item.assetId;
ft.add(R.id.container_frame, newFragment, ""+position);
ft.addToBackStack(null);
// Start the animated transition.
ft.commit();
}//end
});
然后当它加载列表中的照片列表Fragment
,在`onActivityCreated()中:
// Show loading view
MainActivity main = (MainActivity)getActivity();
main.showLoadingActivity(true);
// Show the back button
main.getActionBar().setDisplayHomeAsUpEnabled(true);
当我处于更深的Fragments
时,如何启动导航工作并显示后退按钮?我错过了什么才能让我回到堆栈?