mocelet
05/04/16, 13:29:17
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?
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?