如何更改Android中已选中导航视图项的文本颜色?

时间:2016-03-14 00:19:55

标签: android android-navigation-drawer android-navigationview

我正在开发一款Android应用。在我的应用程序中,我使用导航视图和抽屉。我想要的是我想要更改已检查项目的文本颜色。我在网上搜索了一下Change the color of a checked menu item in a navigation drawer。我跟着它。但它不起作用,只是抛出错误。

我也尝试过这样:

<android.support.design.widget.NavigationView
        app:itemIconTint="@color/red"
        app:itemTextColor="@color/colorAccent"
        app:itemBackground="@color/white"
        android:id="@+id/left_nv_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@android:color/white" />

但即使选中了项目文本也永远不会是红色。我怎样才能实现它?实际上,我想自定义整个选中的项目。

1 个答案:

答案 0 :(得分:1)

试试这个:

RES /颜色/ menu_selector.xml

 <android.support.design.widget.NavigationView
        ........
        app:itemIconTint="@color/menu_selector"
        app:itemTextColor="@color/menu_selector"/>

像这样设置

drawable

<强>更新: 如果上面的代码不起作用,请尝试将选择器移动到NavigationView文件夹,并在 public partial class Form1 : Form { public Form1() { InitializeComponent(); } string[] files; private void button1_Click(object sender, EventArgs e) { string appPath = Path.GetDirectoryName(Application.ExecutablePath); string folder = appPath;//Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + @"\Archive\"; string filter = "*.*"; files = Directory.GetFiles(folder, filter); var doc = new XmlDocument(); var root = doc.AppendChild(doc.CreateElement("Item")); foreach (var item in files) { var name = root.AppendChild(doc.CreateElement("Name")); string string1 = item; string string2 = appPath; string result = string1.Replace(string2, ""); name.InnerText = result; MessageBox.Show(result); } using (var writer = new XmlTextWriter("data.xml", null)) { writer.Formatting = Formatting.Indented; doc.Save(writer); } { } } 中引用它。