Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.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
ListView上的Android抽屉布局背景选择_Android_Listview_Navigation Drawer - Fatal编程技术网

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)时得到的状态在抽屉列表视图中。