Android 如何以编程方式设置NavigationView itemTextColor
我正在以编程方式在导航视图中添加项,但必须以编程方式添加itemTextColorAndroid 如何以编程方式设置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
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();您能为我提供一个链接或任何演示吗?我尝试过这种方法,但无法完成。我尝试过使用[[不可能完成。您正在以编程方式添加项目。尝试使用菜单添加项目将对您有所帮助。您能为我提供一个链接或任何演示吗?我尝试过这种方法,但无法完成。我尝试过使用[[不可能。您正在以编程方式添加项目。请尝试使用菜单添加项目,这将对您有所帮助。