我有ListView
與ArrayAdapter
繼承自定義Adapter
。我正在使用LinearLayout
的一個自定義Checkable
子類來突出顯示列表中最後選定的項目,其中它基本上將選中狀態映射到選定項目。當添加ImageButton時,duplicateParentState停止工作
列表項使用的Adapter
佈局如下:
<com.wordlistdictionary.CheckableLinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="40dp">
<LinearLayout
android:id="@+id/entry_text"
android:layout_width="0dp"
android:layout_weight="7"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:duplicateParentState="true"
/>
<TextView
android:id="@+id/entry_number_of_occurences_1"
android:textSize="9pt"
android:typeface="monospace"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textColor="@color/item_text_color_selector"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:duplicateParentState="true"
/>
<TextView
android:id="@+id/entry_frequency_1"
android:textSize="9pt"
android:typeface="monospace"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textColor="@color/item_text_color_selector"
android:layout_gravity="center_vertical"
android:layout_weight="2"
android:duplicateParentState="true"/>
<ImageButton
android:id="@+id/delete_entry_button_1"
android:src="@drawable/delete_button_selector"
android:layout_height="40dp"
android:layout_width="40dp"
android:layout_gravity="center_vertical"
android:layout_marginRight="15dp"
android:duplicateParentState="true"
/>
</com.wordlistdictionary.CheckableLinearLayout>
它的工作原理,因爲我希望它與文字的顏色改變過去觸摸的項目,直到我把最後ImageButton
視圖它停止突出顯示那一點的文字。
有沒有人遇到過這個,你的解決方案是什麼?
目前我正在考慮將自選佈局的狀態手動傳播到我的自定義佈局中的所有子視圖,而不是僅僅更改佈局視圖本身的選定狀態並依靠duplicateParentState
機制。
是,ImageButton的是一個可點擊的視圖,它會消耗觸摸/點擊事件,因此該事件不會再回到父親佈局。如果您將textview設置爲可點擊,它也會具有相同的效果。 – Qing