簡體   English   中英

用熒光筆突出顯示選中的列表視圖項

[英]Highlight selected listview item with highlighter effect

我有一個列表視圖,它是多個選擇。 每當我選擇一個項目時,都必須突出顯示該項目。但是我希望它成為一個熒光筆效果,而不是給整個行着色

目標: 在此處輸入圖片說明

代替這個: 在此處輸入圖片說明

主要活動布局

<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" />

首先,您需要為ListView創建一個自定義行(您的行將包含TextView和...)。
然后,您應該為自定義行設置背景,這樣可以防止在按下時突出顯示行。
最后,當按下textview狀態時,為TextView的背景添加選擇器-> change textview background

為您的列表視圖

  <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>

然后在可繪制文件夾中創建一個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>

希望這個幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM