So habe ich benutzerdefinierte Listenelement mit Schaltflächen für eine ListView. Wenn diese Taste gedrückt wird, kann die Schaltfläche abwechselnd gezeichnet werden, um dem Benutzer eine Rückmeldung zu geben. Wenn ich jedoch auf die Zeile klicke, zeigen alle Schaltflächen den gedrückten Zustand an, als ob ich auf sie geklickt hätte.Wie zu verhindern, dass Button in ListItem Highlight bekommen
Wie behalte ich die Schaltfläche zeigt ihren ursprünglichen Zustand anstelle von state_pressed?
Layout/List Item:
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:descendantFocusability="blocksDescendants" >
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="vertical"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:gravity="center_vertical|left" >
<TextView
android:id="@+id/txtMain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceLarge"
style="@style/PrimaryText" />
<TextView
android:id="@+id/txtSub"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceLarge"
style="@style/SecondaryText" />
</LinearLayout>
<ImageButton
android:id="@+id/imbResponse"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:focusable="false"
android:duplicateParentState="false"
android:src="@drawable/response_btn"
android:contentDescription="@string/response"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="5dp" />
</LinearLayout>
ziehbar/response_btn.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_focused="true" android:drawable="@drawable/res_m" />
<item android:state_pressed="true" android:drawable="@drawable/res_m" />
<item android:state_focused="false" android:state_pressed="false" android:drawable="@drawable/res_alt_m" />
</selector>
Ich habe versucht, entfernen state_focused und state_pressed, state_focused. Es scheint, dass der Button state_pressed von seinem Elternteil nimmt.
Haben Sie Glück, eine Lösung zu finden? – Sunkas