загрузить popupWIndow через навигационный ящик (всплывающее окно наложения навигационного ящика) - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь выяснить, как загрузить всплывающее окно, используя фрагмент для загрузки через навигационный ящик.

До сих пор я только мог понять, как загрузить всплывающее окно, но навигационный ящик закроется, когда появится всплывающее окно, но я бы хотел, чтобы навигационный ящик оставался на заднем плане, когда появляется всплывающее окно.

Спасибо.

Кроме того, фрагмент в настоящее время является просто черным фрагментом, я ничего не добавил к нему, кроме изменения цвета фона.

    public boolean onNavigationItemSelected(MenuItem item) {

        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);

        int width = dm.widthPixels;
        int height = dm.heightPixels;
        // Handle navigation view item clicks here.
        int id = item.getItemId();

        if (id == R.id.nav_home) {
            android.support.v4.app.FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
            ft.replace(R.id.flMain, new HomeFragment());
            ft.commit();
        }
        else if (id == R.id.nav_profile) {
            android.support.v4.app.FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
            ft.replace(R.id.flMain, new ProfileFragment());
            ft.commit();
        }
        else if (id == R.id.nav_post_ad) {
            android.support.v4.app.FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
            ft.replace(R.id.flMain, new PostAdFragment());
            ft.commit();
        }
        else if (id == R.id.nav_sign_in) {
            Intent signInIntent = new Intent(MainActivity.this, com.bookswap.ui.login.LoginActivity.class);
            startActivity(signInIntent);
        }
        else if (id == R.id.nav_sign_out) {
            //TODO:
            //load pop-up page to confirm sign out
            //startActivity(new Intent(MainActivity.this, confirmSignOut.class));
            LayoutInflater inflater = (LayoutInflater) MainActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View layout = inflater.inflate(R.layout.fragment_confirm_sign_out, null);
            PopupWindow popupWindow = new PopupWindow(layout, (int)(width * 0.8), (int)(height * 0.8), true);
            //popupWindow.setOutsideTouchable(true);
            //popupWindow.getOverlapAnchor(true);
            popupWindow.setFocusable(true);
            popupWindow.showAtLocation(layout, Gravity.CENTER,0,0);
        }

        DrawerLayout drawer = findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...