Tak więc mam niestandardowy element listy z przyciskami do ListView. Po naciśnięciu przycisk wyświetla alternatywne losowanie, aby wyświetlić informację zwrotną dla użytkownika. Jednak po kliknięciu na wiersz wszystkie przyciski pokazują stan wciśnięty, tak jakbym je kliknął.Jak zabezpieczyć przycisk wewnątrz ListItem, aby uzyskać zaznaczenie
Jak zachować przycisk wyświetla oryginalny stan zamiast state_pressed?
układ/Lista tytułów:
<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>
odkształcalne/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>
Próbowałem remove state_focused i state_pressed, state_focused. Wygląda na to, że przycisk bierze state_pressed od swojego rodzica.
Przy odrobinie szczęścia znalezienie rozwiązania? – Sunkas