DrawerLayout позволяет мне только один клик

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

Код выглядит следующим образом:

     @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        return super.onOptionsItemSelected(item);
    }

    @SuppressWarnings("StatementWithEmptyBody")
    @Override
    public boolean onNavigationItemSelected(MenuItem item) {
        // Handle navigation view item clicks here.
        int id = item.getItemId();
        //Cerramos el toolbar

        fab_rankit.hide();

        if (id == R.id.nav_perfil) {
            Intent intent_perfil = new Intent(Principal_Activity.this, PerfilActivity.class);
            startActivity(intent_perfil);

        } else if (id == R.id.nav_ayuda) {
//            getSupportActionBar().hide();
            getFragmentManager().beginTransaction()
                    .add(R.id.drawer_layout, new SwipeFragment())
                    .addToBackStack(null)
                    .commit();


        } else if (id == R.id.nav_estadisticas) {
            fab_rankit.show();

            RelativeLayout fab_hide = (RelativeLayout) findViewById(R.id.fab_hide);
            fab_hide.setVisibility(View.GONE);
            setContentView(R.layout.activity_principal_);
            getFragmentManager().beginTransaction()
                    .add(R.id.id_principalActivity, new EstadisticasFragment())
                    .addToBackStack(null)
                    .commit();


        } else if (id == R.id.nav_acercade) {

            layout_abierto = true;
            recien_abierto = false;

            acercaDe_layout = (RelativeLayout) findViewById(R.id.layout_invisible_acercaDe);
            acercaDe_layout.setVisibility(View.VISIBLE);
            acercaDe_layout.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    fab_rankit.show();
                    acercaDe_layout.setVisibility(View.GONE);
                    layout_abierto = false;
                    recien_abierto = true;
                    fab_rankit.show();
                }
            });

        } else if (id == R.id.nav_gestion) {
            fab_rankit.show();

            Intent intent_gestion = new Intent(Principal_Activity.this, CargarRankingsActivity.class);
            startActivity(intent_gestion);
        } else if (id == R.id.nav_salir) {
            getSupportActionBar().hide();

            salir_layout = (RelativeLayout) findViewById(R.id.layout_salir_invisible);
            salir_layout.setVisibility(View.VISIBLE);
            layout_abierto = true;
            recien_abierto = false;

            ImageButton bt_continuar = (ImageButton) findViewById(R.id.continuar_salir);
            bt_continuar.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    salir_layout.setVisibility(View.GONE);
                    recien_abierto = true;
                    layout_abierto = false;

                    logout();

//                    getFragmentManager().beginTransaction()
//                            .add(R.id.id_principalActivity, new SplashScreenSalir_Fragment())
//                            .addToBackStack(null)
//                            .commit();
                }
            });

            ImageButton bt_cancelar = (ImageButton) findViewById(R.id.cancelar_salir);
            bt_cancelar.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    fab_rankit.show();
                    getSupportActionBar().show();

                    salir_layout.setVisibility(View.GONE);
                    layout_abierto = false;
                    recien_abierto = true;
                }
            });

        }

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }

Я распределил макет по разным областям (активность_принцип, основной контент). Кажется, что если я нажимаю на один из вариантов и после него действие не воссоздается, как в случае выхода из системы, когда я не нажимаю на окна, или в случае, когда вы открываете только дополнительный макет, оставьте управления меню (открывается, но не позволяет щелкать мышью. Вместо этого, если я использую меню с клавиатурой, если оно щелкает)

Появление моего меню:

introducir la descripción de la imagen aquí Знаете ли вы, почему это может быть? С уважением

-1
задан 25.01.2017, 01:43
0 ответов

Чтобы загружать fragment различных выборов меню ты должен определять fragment и потом загружать это в главном контейнере

    if (fragment != null) {
        fragmentManager
                .beginTransaction()
                .replace(R.id.contenedor_principal, fragment)
                .commit();
    }

Если ты делаешь LOGOUT, пользователь не будь должен мочь соглашаться на меню, а следовательно ты был бы должен убивать navigationView, с finish ()

    Intent login = new Intent(this, Login.class);
    startActivity(login);
    //setResult(RESULT_RETORNO_RAIZ); //para eliminar datos que permiten pasarte el login
    finish();

В твоем коде ты это не уважаешь, и инициализируешь активность вместо того, чтобы грузить fragment в контейнере

0
ответ дан 03.12.2019, 17:31

Теги

Похожие вопросы