![](/img/trans.png)
[英]Fragment is not getting displayed on clicking the menu item in Navigation Drawer
[英]Fragment can not be displayed when navigation drawer item is selected
使用Runnable()可以平滑打开和关闭导航抽屉,但是选择抽屉项目时无法显示片段。
public void onNavigationDrawerItemSelected(final int position,View view) {
new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
FragmentManager fragmentManager = getSupportFragmentManager();
switch (position) {
case 0:
fragmentManager.beginTransaction().replace(R.id.container, new HomeFragment()).commit();
break;
case 1:
fragmentManager.beginTransaction().replace(R.id.container, new HomeFragment()).commit();
break;
case 2:
fragmentManager.beginTransaction().replace(R.id.container, new HomeFragment()).commit();
// Intent i = new Intent(con, SplashScreenActivity.class);
// startActivity(i);
// finish();
break;
}
}
});
}
};
if (mDrawerLayout != null) {
mDrawerLayout.closeDrawer(view);
supportInvalidateOptionsMenu();
}
仅在runOnUiThread
执行操作,而不是在Runnable
中调用runOnUiThread。 您的代码应如下所示:
public void onNavigationDrawerItemSelected(final int position,View view) {
runOnUiThread(new Runnable() {
@Override
public void run() {
FragmentManager fragmentManager = getSupportFragmentManager();
switch (position) {
case 0:
fragmentManager.beginTransaction().replace(R.id.container, new HomeFragment()).commit();
break;
case 1:
fragmentManager.beginTransaction().replace(R.id.container, new HomeFragment()).commit();
break;
case 2:
fragmentManager.beginTransaction().replace(R.id.container, new HomeFragment()).commit();
// Intent i = new Intent(con, SplashScreenActivity.class);
// startActivity(i);
// finish();
break;
}
}
});
if (mDrawerLayout != null) {
mDrawerLayout.closeDrawer(view);
supportInvalidateOptionsMenu();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.