代码之家  ›  专栏  ›  技术社区  ›  user312456

无法放置实际图像图标,也无法在导航视图中添加选择器颜色

  •  1
  • user312456  · 技术社区  · 8 年前

    我有一个java类文件和一个XML文件。在XML文件中,我附加了图标资源和标题。 我在NavigationView中找不到实际的图标。我得到的是灰色图标,它没有在资源可提取文件夹中声明。

    我必须将选择器放在已选择的导航项中。

    这是我的java代码和XML文件

    维护活动.java

    public class MainActivity extends AppCompatActivity {
        DrawerLayout mDrawerLayout;
        NavigationView mNavigationView;
        FragmentManager mFragmentManager;
        FragmentTransaction mFragmentTransaction;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
            mNavigationView = (NavigationView) findViewById(R.id.shitstuff);
            android.support.v7.widget.Toolbar toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);
            // Show menu icon
    
            setSupportActionBar(toolbar);
            getSupportActionBar().setDisplayShowHomeEnabled(true);
    
            /**
             * Lets inflate the very first fragment
             * Here , we are inflating the NewsFragment as the first Fragment
             */
    
            mFragmentManager = getSupportFragmentManager();
            mFragmentTransaction = mFragmentManager.beginTransaction();
            mFragmentTransaction.replace(R.id.containerView, new NewsFragment()).commit();
    
    //        mNavigationView.setBackgroundColor(Color.parseColor("#CFCFCF"));
            /**
             * Setup click events on the Navigation View Items.
             */
    
            mNavigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
                @Override
                public boolean onNavigationItemSelected(MenuItem menuItem) {
                    mDrawerLayout.closeDrawers();
    
    
                    if (menuItem.getItemId() == R.id.nav_item_sent) {
                        FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
                        fragmentTransaction.replace(R.id.containerView, new SportsFragment()).commit();
    
                    }
    
                    if (menuItem.getItemId() == R.id.nav_item_inbox) {
                        FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction();
                        xfragmentTransaction.replace(R.id.containerView, new NewsFragment()).commit();
                    }
    
                    if (menuItem.getItemId() == R.id.nav_item_sent){
                        FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction();
                        xfragmentTransaction.replace(R.id.containerView, new VideosFragment()).commit();
                    }
    
                    if (menuItem.getItemId() == R.id.nav_item_draft) {
                        FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction();
                        xfragmentTransaction.replace(R.id.containerView, new OpinionFragment()).commit();
                    }
    
                    if (menuItem.getItemId() == R.id.nav_item_sports) {
                        FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction();
                        xfragmentTransaction.replace(R.id.containerView, new SportsFragment()).commit();
                    }
    
                    if (menuItem.getItemId() == R.id.nav_item_weather) {
                        FragmentTransaction xfragmentTransaction = mFragmentManager.beginTransaction();
                        xfragmentTransaction.replace(R.id.containerView, new NewsFragment()).commit();
                    }
    
                    return false;
                }
    
            });
    
            /**
             * Setup Drawer Toggle of the Toolbar
             */
    
    
    
            ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.app_name,
                    R.string.app_name);
    
            mDrawerLayout.setDrawerListener(mDrawerToggle);
    
            mDrawerToggle.syncState();
    
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.menu_main, menu);
    
            return true;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
                case R.id.action_about_us:
                    Intent intent = new Intent(MainActivity.this, AboutUs.class);
                    startActivity(intent);
                    return true;
    
                case R.id.action_terms_of_use:
                    Intent intent_two = new Intent(MainActivity.this, TermsUse.class);
                    startActivity(intent_two);
                    return true;
    
                case R.id.action_privacy_policy:
                    Intent intent_three = new Intent(MainActivity.this, PrivacyPolicy.class);
                    startActivity(intent_three);
                    return true;
    
                case R.id.action_contact_us:
                    Intent intent_four = new Intent(MainActivity.this, ContactUs.class);
                    startActivity(intent_four);
    
                case R.id.search:
                    hidetext();
                    return true;
                default:
                    return super.onOptionsItemSelected(item);
            }
        }
    
        private void hidetext() {
    
            Intent i = new Intent(MainActivity.this, SearchResultActivity.class);
            startActivity(i);
        }
    }
    

    drawermenu.xml

     <?xml version="1.0" encoding="utf-8"?>
        <menu xmlns:android="http://schemas.android.com/apk/res/android">
    
            <group
                android:id="@+id/news"
                android:checkableBehavior="single">
                <item
                    android:id="@+id/nav_item_inbox"
                    android:title="News"
                    android:icon="@drawable/news"/>
    
            </group>
    
            <group
                android:id="@+id/opinion"
                android:checkableBehavior="single">
                <item
                    android:id="@+id/nav_item_draft"
                    android:title="Opinion"
                    android:icon="@drawable/opinion"/>
            </group>
    
            <group
                android:id="@+id/sports"
                android:checkableBehavior="single">
                <item
                    android:id="@+id/nav_item_sports"
                    android:title="Sports"
                    android:icon="@drawable/sports"/>
            </group>
    
            <group
                android:id="@+id/videos"
                android:checkableBehavior="single">
                <item
                    android:id="@+id/nav_item_sent"
                    android:title="Video Gallery"
                    android:icon="@drawable/videogallery"/>
            </group>
    
            <group
                android:id="@+id/weather"
                android:checkableBehavior="single">
                <item
                    android:id="@+id/nav_item_weather"
                    android:title="Weather info"
                    android:icon="@drawable/weather"/>
            </group>
    
            <group
                android:id="@+id/misc"
                android:checkableBehavior="single">
    
            </group>
    
    
        </menu>
    

    活动_主.xml

    <LinearLayout 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"
        android:fitsSystemWindows="true"
        android:orientation="vertical">
    
        <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/blue"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:title="SIKKIM EXPRESS" />
    
        <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/drawerLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    
    
            <FrameLayout
                android:id="@+id/containerView"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical"></FrameLayout>
    
    
            <android.support.design.widget.NavigationView xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:app="http://schemas.android.com/apk/res-auto"
                android:id="@+id/shitstuff"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_gravity="start"
                android:layout_marginTop="-24dp"
                app:itemTextColor="@color/black"
                app:itemBackground="@drawable/selected"
                app:menu="@menu/drawermenu" />
    
    
        </android.support.v4.widget.DrawerLayout>
    
    </LinearLayout>
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   iSrinivasan27    8 年前

    默认情况下,导航视图使用材质设计。删除导航视图图标中的灰色

    密码

    mNavigationView.setItemIconTintList(null);