ListView选择器更改整个列表视图而不是行

时间:2014-01-26 00:11:23

标签: android-listview android-selector

我在listview选择器上阅读了大量文章,但我无法让它工作。当我在列表视图中按一行时,整个列表视图而不是所选项目会改变颜色。我正在使用Listview片段和自定义行。

首先,我的自定义行开始像这样,样式设置我的默认背景颜色和其他东西到我想要的内部这里只是一些视图。如左图所示。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
style="@style/darkBackdropList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >

接下来,我有一个选择器:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<item 
  android:state_pressed="true" 
  android:drawable="@drawable/selected"/> 
</selector> 

drawable / selected只是浅灰/蓝色:

<drawable name="selected">#8FBDAB</drawable>

在我的片段中,我这样做:

public class GuideListFragment extends ListFragment {
@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    getListView().setSelector(R.drawable.darklistselector);
}
}

当我的列表视图显示时,它看起来都很好。但是,当我选择单行时,覆盖整个活动的列表视图会将颜色更改为“darklistselector”。

我尝试将其设置为自定义行背景,但它更奇怪地改变整个屏幕在黑色,灰色/蓝色和白色之间。

感谢您的帮助。

enter image description here

1 个答案:

答案 0 :(得分:0)

对不起,我的错,但是如果有人和我做同样的事情。基本上我不得不删除我的风格并将其更改为:

android:background="@drawable/darklistselector"

然后添加一个未按下的新选择器:

    <item android:state_pressed="true" android:drawable="@drawable/selected"/> 
    <item android:state_pressed="false" android:drawable="@drawable/standard"/> 

选择是行高亮,标准是我以前的风格。