我已经实现了一个抽屉导航并且一切正常。抽屉导航包含一个 ListView ,当一个项目被选中时,主要 fragment 被正确替换。
这是 onClickListener 代码:
mDrawerListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
HeaderViewListAdapter headerView = (HeaderViewListAdapter) parent.getAdapter();
AccountAdapter adapter = (AccountAdapter) headerView.getWrappedAdapter();
Cursor cursor = adapter.getCursor();
if(cursor != null && cursor.moveToPosition(position)){
((NavigationDrawerCallbacks) getActivity()).onNavigationDrawerItemSelected(cursor.getLong(cursor.getColumnIndex(ID_COLUMN)));
}
}
});
在我的 Activity 中,onNavigationDrawerItemSelected 方法是这样的:
@Override
public void onNavigationDrawerItemSelected(long accountId) {
// update the main content by replacing fragments
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.mainFragment, AccountDetailFragment.newInstance(accountId))
.commit();
}
如我所说,此功能有效,但抽屉导航保持打开状态。用户必须从 ListView 中选择一个帐户,然后必须关闭抽屉才能看到主要 fragment ,这对用户来说很麻烦,所以我怎样才能让它自动关闭,这样当一个项目被选中时,唯一可见的元素就是主要 fragment (以及其中的所有内容)?
最佳答案
使用 Drawer View
或 Drawer 的 Gravity
在 DrawerLayout
对象上调用 closeDrawer()
作为一个论点。
关于android - 选择项目后如何关闭抽屉导航?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27595990/