Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何以编程方式设置NavigationView itemTextColor_Android - Fatal编程技术网

Android 如何以编程方式设置NavigationView itemTextColor

Android 如何以编程方式设置NavigationView itemTextColor,android,Android,我正在以编程方式在导航视图中添加项,但必须以编程方式添加itemTextColor NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); navigationView.setNavigationItemSelectedListener(this); final Menu menu = navigationView.getMenu(); for (int i = 1; i

我正在以编程方式在导航视图中添加项,但必须以编程方式添加itemTextColor

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
    final Menu menu = navigationView.getMenu();
    for (int i = 1; i <= 3; i++) {
        menu.add("test" + i);
    }
NavigationView NavigationView=(NavigationView)findViewById(R.id.nav_视图);
navigationView.setNavigationItemSelectedListener(此);
最终菜单=navigationView.getMenu();

对于(int i=1;i,您可以使用Spannable字符串更改NavigationView项的颜色。。 我可以通过使用此代码来实现

这是您的菜单项

SpannableString mNewTitle = new SpannableString(item.getTitle());
        mNewTitle.setSpan(new CustomTypefaceSpan("", font, 16), 0,
                mNewTitle.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
        mNewTitle.setSpan(new RelativeSizeSpan(1.2f), 0, mNewTitle.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        mNewTitle.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.light_grey)), 0, mNewTitle.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        item.setTitle(mNewTitle);

您可以使用Spannable字符串更改NavigationView项的颜色。。 我可以通过使用此代码来实现

这是您的菜单项

SpannableString mNewTitle = new SpannableString(item.getTitle());
        mNewTitle.setSpan(new CustomTypefaceSpan("", font, 16), 0,
                mNewTitle.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
        mNewTitle.setSpan(new RelativeSizeSpan(1.2f), 0, mNewTitle.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        mNewTitle.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.light_grey)), 0, mNewTitle.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        item.setTitle(mNewTitle);

我已经找到了动态数据添加和菜单项选择器(单击抽屉)的解决方案

代码如下:

 // MainActivity.java
 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.setNavigationItemSelectedListener(this);
        final Menu menu = navigationView.getMenu();

        for (int i = 1; i <= 3; i++) {
            menu.add("Test " + i);
        }

 public boolean onNavigationItemSelected(MenuItem item) {

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        item.setCheckable(true);
        item.setChecked(true);
        item.setEnabled(true);
        return true;
    }

// Drawable

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#097054" android:state_enabled="false" />
    <item android:color="#097054" android:state_checked="true" />
    <item android:color="#FFDE00" />
</selector>

// activity.xml

<android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="#ffffff"
        android:fitsSystemWindows="true"
        app:itemBackground="@android:color/transparent"
        app:itemTextColor="@drawable/menu_text_color">


    </android.support.design.widget.NavigationView>
//MainActivity.java
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
ActionBarDrawerToggle切换=新建ActionBarDrawerToggle(
这,抽屉,工具栏,R.string.navigation\u drawer\u open,R.string.navigation\u drawer\u close);
抽屉。设置抽屉定位器(开关);
toggle.syncState();
NavigationView NavigationView=(NavigationView)findViewById(R.id.nav_视图);
navigationView.setNavigationItemSelectedListener(此);
最终菜单=navigationView.getMenu();

对于(int i=1;i我找到了动态数据添加和菜单项选择器(在抽屉上单击)的解决方案

代码如下:

 // MainActivity.java
 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.setNavigationItemSelectedListener(this);
        final Menu menu = navigationView.getMenu();

        for (int i = 1; i <= 3; i++) {
            menu.add("Test " + i);
        }

 public boolean onNavigationItemSelected(MenuItem item) {

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        drawer.closeDrawer(GravityCompat.START);
        item.setCheckable(true);
        item.setChecked(true);
        item.setEnabled(true);
        return true;
    }

// Drawable

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#097054" android:state_enabled="false" />
    <item android:color="#097054" android:state_checked="true" />
    <item android:color="#FFDE00" />
</selector>

// activity.xml

<android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="#ffffff"
        android:fitsSystemWindows="true"
        app:itemBackground="@android:color/transparent"
        app:itemTextColor="@drawable/menu_text_color">


    </android.support.design.widget.NavigationView>
//MainActivity.java
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
ActionBarDrawerToggle切换=新建ActionBarDrawerToggle(
这,抽屉,工具栏,R.string.navigation\u drawer\u open,R.string.navigation\u drawer\u close);
抽屉。设置抽屉定位器(开关);
toggle.syncState();
NavigationView NavigationView=(NavigationView)findViewById(R.id.nav_视图);
navigationView.setNavigationItemSelectedListener(此);
最终菜单=navigationView.getMenu();

对于(int i=1;i您希望将所有项目设置为相同颜色或不同项目的不同颜色?当单击特定项目时,其颜色会发生变化并保持不变。例如:当用户打开抽屉并单击特定项目时,其颜色会发生变化并保持不变(相同颜色)还有一个项目单击。您可以添加案例的图像或屏幕截图以及onclick部分的代码(如果您在某处给出)吗?单击前和单击后,预期颜色和实际颜色。我添加了屏幕截图使用此…………navigationView.setItemTextColor();是否要将所有项目设置为相同颜色或不同项目的不同颜色?单击特定项目时,其颜色会发生变化并保持不变。例如:当用户打开抽屉并单击特定项目时,其颜色会发生变化并保持不变(相同颜色)还有一个项目单击。您可以添加案例的图像或屏幕截图以及onclick部分的代码(如果您在某处给出)吗?单击前和单击后,预期颜色和实际颜色。我添加了屏幕截图使用此…………navigationView.setItemTextColor();您能为我提供一个链接或任何演示吗?我尝试过这种方法,但无法完成。我尝试过使用[[不可能完成。您正在以编程方式添加项目。尝试使用菜单添加项目将对您有所帮助。您能为我提供一个链接或任何演示吗?我尝试过这种方法,但无法完成。我尝试过使用[[不可能。您正在以编程方式添加项目。请尝试使用菜单添加项目,这将对您有所帮助。