繁体   English   中英

选择导航抽屉项目时无法显示片段

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM