我正在尝试使用导航抽屉让我选择不同类型的片段。 我实现了一个Runnable()线程,以便在片段更改时转换更平滑。 然而,在我实现之后,它不会在开始时加载默认片段,这意味着它将显示为空白,我必须单击导航抽屉以在srart上显示某些内容。
我希望它能够在应用程序开头的菜单上显示第一项(菜单0)
以下是一些代码段
private class DrawerItemClickListener implements
ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
selectItem(position);
}
}
private void selectItem(final int position) {
mPendingRunnable = new Runnable() {
@Override
public void run() {
// update the main content by replacing fragments
changeFragment(position);
}
};
// update selected item and title, then close the drawer
// update the main content by replacing fragments
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
setTitle(mPAGETitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
}
private void changeFragment(final int position)
{
Fragment fragment = new PageFragment(MainActivity.this);
Bundle args = new Bundle();
args.putInt(PageFragment.ARG_PAGE_NUMBER, position);
fragment.setArguments(args);
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_frame,
fragment).commit();
fragmentChanged =true;
}
public void onDrawerClosed(View view) {
getActionBar().setTitle(mTitle);
invalidateOptionsMenu(); // creates call to
//
onPrepareOptionsMenu()
if (mPendingRunnable != null) {
Handler mHandler = new Handler();
mHandler.post(mPendingRunnable);
mPendingRunnable = null;
}
progress = ProgressDialog.show(MainActivity.this,
"Downloading Data",
"Please wait while Data are downloaded");
progress.setCancelable(false);
progress.isIndeterminate();
progress.show();
}
答案 0 :(得分:0)
您必须在活动的onCreate方法中加载第一个片段。当用户从naviagtion抽屉菜单中选择一个选项时,您将使用新的片段布局替换现有的片段布局。