突出显示具有突出显示效果的所选列表视图项目

时间:2015-11-17 01:48:07

标签: android listview android-cursoradapter

我有一个listview,它是多选的。每当我选择一个项目时,它必须突出显示..但是我希望它是一个荧光笔效果,而不是整个行着色

目标: enter image description here

而不是: enter image description here

主要活动布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.example.peace.webelieve.Niv">

<ListView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/listView2"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_above="@+id/seekBar2" 
    android:choiceMode="multipleChoice"
    android:listSelector="@android:color/transparent"/>

<SeekBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/seekBar2"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alignRight="@+id/listView2"
    android:layout_alignEnd="@+id/listView2" />

自定义列表布局

<?xml version="1.0" encoding="utf-8"?>

>

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="Large Text"
    android:id="@+id/item_version"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:textStyle="bold"
    android:textIsSelectable="false"
    android:typeface="serif"
android:background="@drawable/list_row"

    android:paddingStart="20dp" />

1 个答案:

答案 0 :(得分:0)

首先,您需要为自己创建一个自定义行ListView(您的行将包含TextView和...)。
然后,您应该为自定义行设置背景,当您按下时,它将阻止您的行高亮 最后,在按下textview状态时,为TextView的背景添加选择器 - &gt;更改textview背景

列表视图

  <ListView
   ...
   android:listSelector="@android:color/transparent" // add this line for disable ListView hightlight when press
  />

您的自定义行布局

<LinerLayout
  android:layout_width = "match_parent"
  android:layout_height = "wrap_content"
  android:background = "#f00" // set background for your custom cell for preventing row change color when it selected>

  <TextView
   android:layout_width = "wrap_content"
   android:layout_height = "wrap_content"
   android:background = "@drawable/textview_selection" // add selector for the background of your textview />

</LinearLayout>

然后在drawable文件夹中创建textview_selection布局

 <?xml version="1.0" encoding="utf-8"?>
     <selector xmlns:android="http://schemas.android.com/apk/res/android">
     <item
        android:state_pressed="true"
        android:drawable="@drawable/selected_background" />
 </selector>

并创建xml文件selected_background

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" 
 android:shape="rectangle">
 <solid android:color="#0000ff" />
</shape>

希望这个帮助