Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Image color getting changed in Navigation Drawer

I am having a strange issue with navigation drawer. I created navigation drawer using default template provided with Android Studio and it created it using menu.xml file. Now problem is that whenever I add image to navigation drawer list item it's color is changed to grey despite any color image. here is one image from navigation drawer

icon

As you can see the color of image is green but when added to navigation drawer it looks like Navigation Drawer

I don't know what's causing this

Here is menu.xml

    <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <group android:checkableBehavior="single">
        <item
            android:id="@+id/nav_camera"
            android:icon="@drawable/clock"
            android:title="Home" />
        <item
            android:id="@+id/nav_gallery"
            android:icon="@drawable/mega_event"
            android:title="Mega Events" />
        <item
            android:id="@+id/nav_slideshow"
            android:icon="@drawable/tickets"
            android:title="My Tickets" />
        <item
            android:id="@+id/nav_manage"
            android:icon="@drawable/profile"
            android:title="Profile" />
        <item
            android:id="@+id/nav_settings"
            android:icon="@drawable/settings"
            android:title="Settings" />
        <item
            android:id="@+id/nav_logout"
            android:icon="@drawable/logout"
            android:title="Logout" />
    </group>

</menu>

Here the drawable in the first item is the one I posted

And activity theme

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
</style>

and navigation drawer activity class

    public class ActivityNavigationDrawer extends AppCompatActivity
        implements NavigationView.OnNavigationItemSelectedListener {
    FragmentManager mFragmentManager;
    FragmentTransaction mFragmentTransaction;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_navigation_drawer);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.setDrawerListener(toggle);
        toggle.syncState();

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setBackgroundColor(Color.parseColor("#FFFFFF"));
        navigationView.setNavigationItemSelectedListener(this);
        mFragmentManager = getSupportFragmentManager();
        mFragmentTransaction = mFragmentManager.beginTransaction();
        mFragmentTransaction.replace(R.id.containerView,new FragmentTabs()).commit();
    }

    @Override
    public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (drawer.isDrawerOpen(GravityCompat.START)) {
            drawer.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        return true;
    }

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

        if (id == R.id.nav_camera) {
            // Handle the camera action
        } else if (id == R.id.nav_gallery) {

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

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

        }

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        return true;
    }
}
like image 294
Vivek Mishra Avatar asked Jan 03 '16 17:01

Vivek Mishra


1 Answers

You can use directly app:itemIconTint for icon color change and app:itemTextColor for text item color change in navigation view.

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- Content Layout -->
    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/adView"
        android:layout_below="@id/my_awesome_toolbar" />

    <!-- Navigation Drawer -->
    <android.support.design.widget.NavigationView
        android:id="@+id/navigation"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:itemIconTint="#FF0000"
        app:itemTextColor="#D2691E"
        app:menu="@menu/navigation_menu" />
</android.support.v4.widget.DrawerLayout>
like image 116
Rohit Suthar Avatar answered Dec 22 '22 09:12

Rohit Suthar