![]() |
|
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
«
Tema Anterior
|
Siguiente tema
»
|
|
Herramientas |
|
#1
|
||||
|
||||
|
TextView con enlaces y detectar click donde no hay enlace
Estoy intentando meter un TextView con enlaces en un layout que a su vez tiene evento onClick definido. El problema es que aunque haga click donde no hay enlaces, el TextView se queda el evento.
La historia hasta el momento: Poner el enlace no es mucho problema usando setText(Html.fromHtml(....)), aunque me pasó algo raro, se ponía con color de enlace pero no hacía nada al tocarlo. Buscando en SO veo que hay que usar magia negra en el TextView y llamar al método setMovementMethod(LinkMovementMethod.getInstance() ). Ahí vienen los problemas, ahora el TextView tiene su enlace, le puedes hacer click y abre el navegador. Pero ya no me deja hacer click en el layout que lo contiene porque se come el evento. Me gustaría que si el usuario hace click en cualquier texto que no sea el enlace, el click vaya al elemento que hay debajo. He probado a poner android:descendantFocusability="blocksDescendants" en el layout que contiene el TextView. Nada, el enlace sigue funcionando pero sigue comiéndose el evento donde no hay enlace. También he probado a poner android:focusable="false" y focusableInTouchMode en el TextView, agua. De hecho también he probado a quitar todo eso y poner el mismo OnClickListener en el TextView con enlaces, y nada, si tiene lo del LinkMovementMethod imprescindible para que el enlace haga algo, ya no genera ningún evento onClick. (EDIT: el caso es que los click en el TextView no los coge nunca (tenga el LinkMovementMethod o no), incluso definiéndole un onClickListener, ahí ya no sé qué estaré haciendo mal) ¿Alguna sugerencia? Última edición por mocelet Día 05/04/16 a las 14:54:49 |
|
|
|
#2
|
||||
|
||||
|
¿Y con un onTouchListener?
Puedes usar el onInterceptTouchEvent sobre el layout que está debajo, el único problema es que se ejecutará siempre, tanto si pulsas un enlace como si no lo pulsas. Yo lo usaba antes, cuando tenía que programarme mis propias listas horizontales hasta que Google vino a solucionarnos la vida con el RecyclerView. Básicamente hace como un onTouch pero al revés, se va ejecutando por los contenedores y si está definido en alguno se ejecuta, y luego según devuelves true o false le pasa la pelota al siguiente o ya se lo queda el. |
| Gracias de parte de: | ||
|
#3
|
||||
|
||||
|
Gracias, parece la única opción viable. Lo que me lleva a pensar que de momento se va a quedar como está
DLo del TextView con enlaces es algo provisional y prefiero no complicar el código interceptando eventos. Además estoy viendo que el TextView es muy limitado para esas cosas, no puedes interceptar la URL como en los WebView y hacer lo que quieras, así que terminaré presentando la información de otra forma. Última edición por mocelet Día 05/04/16 a las 14:55:33 |
| Respuesta |
Estás aquí
|
||||||
|
||||||
«
Tema Anterior
|
Siguiente tema
»
|
|
Hora actual: 23:34:28 (GMT +1)
HTCMania: líderes desde el 2007


D


