Saya mencoba untuk menunjukkan ikon di sebelah item dalam menu saya untuk laci navigasi saya, tetapi untuk beberapa alasan ikon selalu muncul dalam warna abu-abu daripada warna aslinya (coklat). Apakah ada cara untuk mencegah hal ini terjadi untuk menunjukkan warna asli ikon?
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
sumber
sumber
ic_browncircle
?.setColorFilter(MY_BROWN_COLOR)
pandangan itu?Jawaban:
Saya menemukan jawabannya di sini: https://stackoverflow.com/a/30632980/875249
Untuk menghindari tautannya cukup mudah:
Ini menonaktifkan semua pewarnaan berbasis negara, tetapi Anda juga dapat menentukan daftar Anda sendiri juga. Ini bekerja sangat baik untuk saya!
Di sinilah Anda bisa mendapatkan detail tentang cara membuat daftar status warna, tetapi cukup sederhana juga: http://developer.android.com/reference/android/content/res/ColorStateList.html
sumber
app:itemIconTint="@null"
tetapi tidak berhasil.mNavigationView.setItemIconTintList(null);
Ini adalah jawaban yang saya cari begitu lama ...Menggunakan
itu benar. Juga Jika semua ikon Anda dalam satu skema warna (saya punya semua putih), Anda dapat mengatur melalui file xml - app: itemIconTint = "@ android: color / white"
Kasus saya:
sumber
mNavigationView.setItemIconTintList(null);
menghapus ikonTint default dari semua ikon. Sekarang jika Anda memiliki ikon Anda dalam warna merah, itu akan tampak merah, tidak ada iconTint yang diterapkan.Saya sudah mencoba yang serupa di salah satu aplikasi saya. Dan ya, tampaknya warna ikon tidak berubah. Tapi saya sudah berhasil melakukannya dengan solusi lain. Ini milik saya
ic_browncircle.xml
Yang saya percaya adalah sesuatu yang mirip dengan Anda tetapi tidak memiliki efek apa pun dan tidak mengubah warna.
Jadi yang saya lakukan adalah ini.
Dan sepertinya berhasil. Inilah hasilnya.
sumber
Jika Anda membuat proyek dengan laci navigasi yang
Android Studio
disediakan. Di kelas Aktivitas Utama Anda, Anda cukup menambahkan baris kode ininavigationView.setItemIconTintList(null);
keonCreate
metode Anda . Seperti ini;sumber
Anda dapat mencoba menggunakan drawed tinted, tidak yakin apakah itu bekerja di bawah 5.0.
Buat drawable dan tambahkan kode berikut.
Dan kemudian ubah item menu Anda menjadi yang baru saja Anda buat. Jika itu tidak berhasil, maka saya tidak yakin ada solusi lain. Anda dapat mencoba perpustakaan ini: https://github.com/mikepenz/MaterialDrawer Saya sering menggunakannya di proyek saya.
sumber
Cukup tambahkan satu baris dalam xml
sumber
app:itemIconTint="@null"
Entah bagaimana kode ini tidak berfungsi MainActivity.java
jadi kamu bisa menggunakannya.
MainActivity.java
sumber
Tambahkan ini
sumber