Estou tentando mostrar um ícone ao lado de um item no meu menu para a minha gaveta de navegação, mas por algum motivo o ícone sempre aparece em cinza e não na cor original (marrom). Existe alguma maneira de impedir que isso aconteça para mostrar a cor original do ícone?
MainActivity.java
public class MainActivity extends AppCompatActivity {
private DrawerLayout mDrawerLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
if (navigationView != null) {
setupDrawerContent(navigationView);
}
}
private void setupDrawerContent(NavigationView navigationView) {
navigationView.setNavigationItemSelectedListener(
new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
mDrawerLayout.closeDrawers();
return true;
}
});
}
}
drawer_view.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="Section">
<menu>
<item
android:id="@+id/navigation_item_1"
android:icon="@drawable/ic_browncircle"
android:title="Sub item 1" />
</menu>
</item>
</menu>
java
android
xml
android-support-library
MacaronLover
fonte
fonte
ic_browncircle
?.setColorFilter(MY_BROWN_COLOR)
essa visão?Respostas:
Encontrei a resposta aqui: https://stackoverflow.com/a/30632980/875249
Para evitar o link, é bastante direto:
Isso desativa todos os tingimentos baseados em estado, mas você também pode especificar sua própria lista. Funcionou muito bem para mim!
Aqui é onde você pode obter detalhes sobre a criação de uma lista de estados de cores, mas também é bastante simples: http://developer.android.com/reference/android/content/res/ColorStateList.html
fonte
app:itemIconTint="@null"
mas sem sucesso.mNavigationView.setItemIconTintList(null);
Esta é a resposta que eu estava procurando por tanto tempo ...Usar
está certo. Além disso, se todos os seus ícones em um esquema de cores (eu tinha todo branco), você pode configurar através do arquivo xml - app: itemIconTint = "@ android: color / white"
O meu caso:
fonte
mNavigationView.setItemIconTintList(null);
remove o iconTint padrão de todos os ícones. Agora, se você tiver seu ícone na cor vermelha, ele parecerá vermelho, nenhuma iconTint será aplicada.Eu tentei algo semelhante em um dos meus aplicativos. E sim, parece que a cor do ícone não muda. Mas eu consegui fazer com outra solução alternativa. Aqui está o meu
ic_browncircle.xml
O que acredito ser algo parecido com você, mas não tem efeito e não muda a cor.
Então o que eu fiz é isso.
E parece funcionar. Aqui está o resultado.
fonte
Se você criar um projeto com a gaveta de navegação
Android Studio
fornecida. Na sua classe Atividade principal, você pode simplesmente adicionar essa linha de códigonavigationView.setItemIconTintList(null);
ao seuonCreate
método. Como isso;fonte
Você pode tentar usar um drawable matizado, não tenho certeza se ele funciona abaixo de 5.0.
Crie um drawable e adicione o seguinte código.
E então altere o item de menu que você pode desenhar para o que você acabou de criar. Se isso não funcionar, não tenho certeza de outras soluções. Você pode tentar esta biblioteca: https://github.com/mikepenz/MaterialDrawer Eu uso muito isso em meus projetos.
fonte
Basta adicionar uma linha no xml
fonte
app:itemIconTint="@null"
De alguma forma, como esse código não funciona MainActivity.java
para que você possa usá-lo.
MainActivity.java
fonte
Adicione isso
fonte