Android: clickable = "true" significa que no se puede hacer clic?
Tengo un ListView con algunas secciones personalizadas en él. Cada sección tiene su propia vista de encabezado. Quiero que los elementos de la lista se puedan hacer clic, pero, obviamente, no quiero que los encabezados de sección se puedan hacer clic. Así que en el xml para los encabezados de sección he añadido android:clickable="false"
.
Al depurar noté que los encabezados de sección seguían respondiendo a mi setOnItemClickListener()
. Entonces intenté fijar android:clickable="true"
en el XML. Y por supuesto, las vistas de cabecera de sección ya no responden a los clics …
- Mostrar el teclado automáticamente
- ((Botón)) dentro de un servicio no funciona
- ¿Cómo obtener eficientemente una matriz corta de recursos en Android?
- Por qué el flag isLockTaskPermitted es falso
- Cómo convertir los segundos en este formato "HH: mm: ss"
Entonces, ¿cuál es el trato aquí? ¿Por qué es que la configuración clickable
= true
diciéndole que no se puede hacer clic? ¿Estoy malentendiendo algo aquí? Aquí está mi XML:
<?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/item_text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/black" android:background="@android:color/transparent" android:textAppearance="?android:attr/textAppearanceLarge" android:paddingLeft="30dp" android:clickable="true" />
Si establezco que clickable="false"
en la parte inferior, esta vista comienza a responder a la setOnItemClickListener()
…
- Inyección de puente Javascript en WebView
- Un ligero retraso al hacer clic en un botón
- Error de símbolo no resuelto en el archivo de actividad
- Fuentes personalizadas y diseños XML (Android)
- Uso de ThreadPoolExecutor y AsyncTask
- Silenciar un video en un VideoView
- Creación de un Arraylist de objetos
- ¿Cómo se activa una entrada de micrófono en el emulador de Android
Cuando se establece OnItemClickListener
, el evento onItemClicked
sólo se llamará si el hijo de ListView
no tiene el conjunto OnClickListener
. La configuración de clickable a true proporcionará la vista secundaria (en este caso, su TextView
) con OnClickListener
vacío. Dado que TextView
de OnClickListener
se establece, OnItemClickListener
no se llamará.
Creo que no deberías escribir android:clickable="true"
cuando era un niño de la vista del elemento de la lista. Si usted tiene un selector para el listitem
, sólo setbackground
en la etiqueta raíz.