ListView上的Android抽屉布局背景选择
我开发了一个带有抽屉布局的应用程序 我的问题是ListView上的Android抽屉布局背景选择,android,listview,navigation-drawer,Android,Listview,Navigation Drawer,我开发了一个带有抽屉布局的应用程序 我的问题是列表视图,当我点击一个项目时,他的文本颜色变为白色,但背景仍然是透明的,列表视图背景是白色的。因此,所选文本不可读 我寻找解决方案,并尝试了很多,但没有人在工作。我只想更改#ffcccc中的背景色,例如当选择某个项目时 你知道吗 抽屉布局 导航列表 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android
列表视图
,当我点击一个项目时,他的文本颜色
变为白色,但背景仍然是透明的,列表视图
背景是白色的。因此,所选文本不可读
我寻找解决方案,并尝试了很多,但没有人在工作。我只想更改#ffcccc
中的背景色,例如当选择某个项目时
你知道吗
抽屉布局
导航列表
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageView
android:id="@+id/image"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_margin="15dp" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_gravity="center_vertical"/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/background_selector"
android:orientation="horizontal" >
<ImageView
android:id="@+id/image"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_margin="15dp" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textColor="@drawable/color_selector"
android:layout_gravity="center_vertical"/>
</LinearLayout>
如果你有什么解决办法。。。
谢谢:)
编辑:
菜单项背景应指向选择器,而不是简单的可绘制或颜色,大致如下:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/holo_blue_light" android:state_pressed="true" />
<item android:drawable="@color/holo_blue_light" android:state_selected="true" />
<item android:drawable="@color/menu_background" />
</selector>
菜单项背景应指向选择器,而不是简单的可绘制或颜色,大致如下:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/holo_blue_light" android:state_pressed="true" />
<item android:drawable="@color/holo_blue_light" android:state_selected="true" />
<item android:drawable="@color/menu_background" />
</selector>
您必须为
android:background
和android:textColor
设置一个选择器。有关更多详细信息,请参阅
导航列表
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageView
android:id="@+id/image"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_margin="15dp" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_gravity="center_vertical"/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/background_selector"
android:orientation="horizontal" >
<ImageView
android:id="@+id/image"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_margin="15dp" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textColor="@drawable/color_selector"
android:layout_gravity="center_vertical"/>
</LinearLayout>
background_selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/holo_blue_light" android:state_pressed="true" />
<item android:drawable="@color/holo_blue_light" android:state_selected="true" />
<item android:drawable="@color/blue" />
</selector>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false" android:color="#ffffff" />
<item android:state_focused="true" android:state_pressed="true" android:color="#000000" />
<item android:state_focused="false" android:state_pressed="true" android:color="#000000" />
<item android:color="#ffffff" />
</selector>
color\u selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/holo_blue_light" android:state_pressed="true" />
<item android:drawable="@color/holo_blue_light" android:state_selected="true" />
<item android:drawable="@color/blue" />
</selector>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false" android:color="#ffffff" />
<item android:state_focused="true" android:state_pressed="true" android:color="#000000" />
<item android:state_focused="false" android:state_pressed="true" android:color="#000000" />
<item android:color="#ffffff" />
</selector>
您必须为
android:background
和android:textColor
设置一个选择器。有关更多详细信息,请参阅
导航列表
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageView
android:id="@+id/image"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_margin="15dp" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:layout_gravity="center_vertical"/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/background_selector"
android:orientation="horizontal" >
<ImageView
android:id="@+id/image"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_margin="15dp" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:textColor="@drawable/color_selector"
android:layout_gravity="center_vertical"/>
</LinearLayout>
background_selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/holo_blue_light" android:state_pressed="true" />
<item android:drawable="@color/holo_blue_light" android:state_selected="true" />
<item android:drawable="@color/blue" />
</selector>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false" android:color="#ffffff" />
<item android:state_focused="true" android:state_pressed="true" android:color="#000000" />
<item android:state_focused="false" android:state_pressed="true" android:color="#000000" />
<item android:color="#ffffff" />
</selector>
color\u selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/holo_blue_light" android:state_pressed="true" />
<item android:drawable="@color/holo_blue_light" android:state_selected="true" />
<item android:drawable="@color/blue" />
</selector>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" android:state_pressed="false" android:color="#ffffff" />
<item android:state_focused="true" android:state_pressed="true" android:color="#000000" />
<item android:state_focused="false" android:state_pressed="true" android:color="#000000" />
<item android:color="#ffffff" />
</selector>
在为列表项的背景定义选择器时,还要为android:state_activated=“true”设置一个部分。Re:ListView#setItemChecked()调用实际上并没有设置所选状态,这非常令人恼火……但我想这就是为什么它们有一个单独的
#setSelection
。希望文档能够更清楚地说明它将项目放入的状态。在为列表项目的背景定义选择器时,还要为android:state\u activated=“true”设置一个部分。Re:ListView#setItemChecked()调用实际上并没有设置所选状态,这非常令人恼火……但我想这就是为什么它们有一个单独的#setSelection
。希望文档更清楚地说明它将项目放入的状态。在适配器上:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
...
rowView.setBackgroundResource(R.drawable.YOUR_SELECTOR);
rowView.setLayoutParams(new ListView.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
return rowView;
}
在适配器上:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
...
rowView.setBackgroundResource(R.drawable.YOUR_SELECTOR);
rowView.setLayoutParams(new ListView.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
return rowView;
}
你可以发布你的输出吗:)你可以看到文本“Paramètres”,它是选中的。对ListView设置android:cacheColorHint=“#00000000”没有更改任何内容:/n尝试指定
TextView
的文本颜色android:textColor=“@android:color/black”
你可以发布你的输出吗:)你可以看到文本“Paramètres”选择哪一个?尝试设置android:cacheColorHint=“#00000000”对于ListView未更改任何内容:/尝试指定TextView
的文本颜色android:textColor=“@android:color/black”
,然后包含一些关于如何使用选择器的代码,因为这是一种方法。我就在我正在开发的一个应用程序中,它的抽屉在适当改变背景的情况下也能正常工作。使用此方法。:-)嗨,我刚开始做抽屉,你的解决方案让我很感兴趣。我试图使用你的代码,但没有成功。所以我的问题是:你在什么地方应用了这个选择器?适配器中的项目?列表谢谢:)是的,在MenuAdapter中,我称它们为MenuItems,这些是我在MenuAdapter的GetView()中膨胀的。也许你在寻找“激活”状态,而不是“选中”状态。然后一定要包含一些关于如何使用选择器的代码,因为这是一种方法。我就在我正在开发的一个应用程序中,它的抽屉在适当改变背景的情况下也能正常工作。使用此方法。:-)嗨,我刚开始做抽屉,你的解决方案让我很感兴趣。我试图使用你的代码,但没有成功。所以我的问题是:你在什么地方应用了这个选择器?适配器中的项目?列表谢谢:)是的,在MenuAdapter中,我称它们为MenuItems,这些是我在MenuAdapter的GetView()中膨胀的。也许你在寻找“激活”状态,而不是“选中”状态。@Kyuè询问的“选中某个项目时”状态实际上可能是“已激活”状态。在抽屉布局项目上,“已激活”是在您单击某个项目并将其释放之后。它是您在调用mDrawerList.setItemChecked(position,true)时得到的状态在抽屉列表视图上的“代码>”。@Kyu_询问的“选择项目时”状态实际上可能是“已激活”状态。在抽屉布局项目上,“已激活”是在您单击项目并将其释放之后。它是您在调用mDrawerList.setItemChecked(position,true)时得到的状态代码>在抽屉列表视图中。