[英]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.