我正在尝试遵循 Material Design 指南,但我不知道如何更改抽屉式导航栏的图标和文本的颜色。
(向下滚动到选择状态): http://www.google.com/design/spec/patterns/navigation-drawer.html#navigation-drawer-content
这是来 self 的 MainActivity(在 onCreate() 中):
protected void onCreate(Bundle savedInstanceState) {
...
ListAdapter adapter = new MyAdapter(this, menu, imageID);
ListView listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
mAdapter.setSelectedItem(position);
}
});
...
}
来自 MyAdapter():
public class MyAdapter extends ArrayAdapter<String>{
private Integer[] imageID;
private int mSelectedItem;
public MyAdapter(Context context, String[] menu, Integer[] imageID) {
super(context, R.layout.row_layout, menu);
this.imageID = imageID;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(getContext());
View view = inflater.inflate(R.layout.row_layout, parent, false);
String menu = getItem(position);
TextView textView = (TextView) view.findViewById(R.id.textView1);
textView.setText(menu);
if (position == getSelectedItem()) {
textView.setTextColor(getContext().getResources().getColor(R.color.primaryColor));
}
else {
textView.setTextColor(getContext().getResources().getColor(R.color.navDrawerTextColor));
}
ImageView imageView = (ImageView) view.findViewById(R.id.imageView);
imageView.setImageResource(imageID[position]);
return view;
}
public int getSelectedItem() {
return mSelectedItem;
}
public void setSelectedItem(int selectedItem) {
mSelectedItem = selectedItem;
}
我的 TextView 来自 xml 文件:
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_gravity="center_vertical"
android:fontFamily="sans-serif-medium"
android:paddingStart="72dp"
android:paddingEnd="16dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/color_selector"
android:textSize="14sp" />
感谢任何帮助,提前致谢!
编辑:我使用了 color_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/primaryColor" android:state_pressed="true" />
<!-- pressed -->
<item android:color="@color/primaryColor" android:state_selected="true" />
<!-- selected -->
<item android:color="#DE000000" />
<!-- default -->
</selector>
但是当项目被选中时,它不会永久保持那个颜色
最佳答案
您应该考虑使用 NavigationView , 的一部分 Android Design Support Library为您完成抽屉导航的所有项目选择和样式设置。
关于android - 如何更改抽屉导航的 TextView 中图标和文本的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30158210/