18
respostas

Ao abrir o menu drawer

O menu abre lentamente. Como poderia resolver ?

18 respostas

Oi Felipe, tudo bem ?

É bem difícil mensurar o que tá rolando, você está tentando pelo emulador ou aparelho fisico ?

Oi Matheus, tudo certo?!

Estou tentando pelo aparelho físico mesmo.

Consegue mostrar pra gente como está seu código ?

Este o meu XML onde ficam os itens do menu.

<group android:checkableBehavior="single">
    <item
        android:id="@+id/nav_produtos"
        android:icon="@drawable/produtos"
        android:title="Produtos" />
    <item
        android:id="@+id/nav_menu"
        android:icon="@drawable/menu"
        android:title="Categorias" />
    <item
        android:id="@+id/nav_lista"
        android:icon="@drawable/lista"
        android:title="Listas" />
    <item
        android:id="@+id/nav_cestavazia"
        android:icon="@drawable/cestavazia"
        android:title="Cesta" />


</group>

<item android:title="Outros">
    <menu>


        <item
            android:id="@+id/nav_sobre"
            android:icon="@drawable/informacao"
            android:title="Sobre" />
        <item
            android:id="@+id/nav_sair"
            android:icon="@drawable/sair"
            android:title="Sair" />

    </menu>
</item>

Aqui a parte do Java onde estao declarado os ids.

@Override public boolean onNavigationItemSelected(MenuItem item) {

    int id = item.getItemId();

    if (id == R.id.nav_produtos) {

        Intent intent = new Intent(Produtos.this,Produtos.class);
        startActivity(intent);
        finish();
        Toast.makeText(Produtos.this,"Produtos",Toast.LENGTH_SHORT ).show();

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

        Intent intent = new Intent(Produtos.this,Categoria.class);
        startActivity(intent);
        finish();

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

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

        Intent intent = new Intent(Produtos.this,Cesta.class);
        startActivity(intent);
        finish();

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

        Intent intent = new Intent(Produtos.this, Sobre.class);
        startActivity(intent);

    }
    else if (id == R.id.nav_sair)

    {
        Intent intent = new Intent(Produtos.this,Login.class);
        startActivity(intent);
        finish();

        SharedPreferences preferences =getSharedPreferences("user_preferences",Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = preferences.edit();
        editor.clear();
        editor.commit();
        finish();


    }

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

}

Faz um teste bem idiota, troca esses ifs por switch

Modifiquei mas mesmo assim continua.

Teria que olhar o restante do código, por acaso está em algum github da vida?

Nao nenhum..

Consegue colocar pra gente poder te ajudar ?

Pode ser aqui mesmo? Parte especifica do codigo? A parte de codigo que relata o menu?

Sem vermos o código ficaremos nesse ping pong até pensarmos em algo...

Não consegue colocar pra gente entender como está e depois você tira ?

@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) @SuppressWarnings("StatementWithEmptyBody") @Override public boolean onNavigationItemSelected(MenuItem item) {

    int id = item.getItemId();

        if (id  == R.id.nav_produtos) {

            Intent intent = new Intent(Produtos.this, Produtos.class);
            startActivity(intent);
            finish();
            Toast.makeText(Produtos.this, "Produtos", Toast.LENGTH_SHORT).show();

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

        Intent intent = new Intent(Produtos.this,Categoria.class);
        startActivity(intent);
        finish();

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

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

        Intent intent = new Intent(Produtos.this,Cesta.class);
        startActivity(intent);
        finish();

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

        Intent intent = new Intent(Produtos.this, Sobre.class);
        startActivity(intent);

    }
        else if (id == R.id.nav_sair)

    {
        Intent intent = new Intent(Produtos.this,Login.class);
        startActivity(intent);
        finish();

        SharedPreferences preferences =getSharedPreferences("user_preferences",Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = preferences.edit();
        editor.clear();
        editor.commit();
        finish();


    }

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


}

@Override
public boolean onQueryTextSubmit(String query) {
    return false;
}



@Override
public boolean onQueryTextChange(String newText) {


    return false;
}

@Override public boolean onCreateOptionsMenu(Menu menu) {

    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.activity__produtos, menu);
    inflater.inflate(R.menu.menu_search,menu);
    MenuItem searchItem = menu.findItem(R.id.menu_search);
    SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
    searchView.setOnQueryTextListener(this);
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);

    searchView.setSearchableInfo(searchManager.getSearchableInfo(new ComponentName(this, SearchableActivity.class)));






    return true;

}

Oi Felipe, blz?

Acompanhei a thread e assim como o Matheus disse, para investigar o problema é necessário acesso ao projeto, pois tem um pouco de complexidade, ou seja, vai facilitar a identificação do problema rodando o projeto e simulando o problema.

Também somos capazes de modificar o código e ver o que funciona ou não, para depois orientá-lo com precisão e evitar muitas respostas que não resolvem o problema, o que acha?

[]s

Blz Alex

Pode ser. Mas como envio para voces o projeto?

Ótimo :)

A melhor opção para nós, instrutores, é via GitHub, pois é possível baixar o seu projeto facilmente e até mesmo mandar o código com as modificações esperadas.

O detalhe é que o GitHub exige um pouco de conhecimento de Git, uma ferramenta que ensinamos aqui na Alura e pode ser um impacto, sendo assim, você pode usar uma alternativa que for mais fácil para você, como é o caso de mandar via Drive da Google.

Se possível, tente via GitHub, pois além de nos ajudar, é muito comum o uso na comunidade de desenvolvedores do mundo inteiro, ou seja, é muito importante como profissional o uso dele.

Mas entendo que você espera uma solução o quanto antes, então sinta-se à vontade em escolher a opção que for mais fácil para você, apenas tenha consciência que via outras fontes, como é caso do Drive, pode demorar um pouco mais a revisão, pois ele pode vim com arquivos do seu computador que serão incompatíveis com os do nosso computador e será necessária a modificação até o projeto fazer o build corretamente, via Git já existe um arquivo que o Android Studio cria que não envia tais arquivo, o que facilita mais ainda para quem for usar o seu projeto.

Entendo que é muita informação, mas prefiro deixar bem explicado para fica transparente. Qualquer dúvida é só avisar.

Blz vou ver a melhor forma de envio.

Obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software