J'ai un TextView
avec ClickableSpan
en ce que les deux layout_height et layout_width est wrap_content.Comportement étrange de ClickableSpan: onClick() appelé en cliquant sur espace vide
Lorsque le texte dans TextView
dans pas trop longtemps, il fonctionne très bien. Lorsque le texte est assez long pour qu'il prenne 2 lignes, il fonctionne également bien mais a un comportement étrange.
qui est quand je clique sur le deuxième espace vide de la ligne (pas remplir avec du texte encore, mais une partie de TextView
), le rappel ClickableSpan
onClick()
est appelée.
Je ne m'attends pas à cela car j'ai cliqué uniquement sur l'espace vide mais pas sur le texte. Bien que cela n'affecte pas beaucoup, je veux savoir ce qu'il y a derrière.
Je mis le ClickableSpan
avec le code ci-dessous:
TextView tv = (TextView) findViewById(R.id.text);
tv.setText("TEXT TEXT TEXT TEXT");
SpannableStringBuilder ssb = new SpannableStringBuilder();
ssb.append(tv.getText());
ssb.setSpan(new TestClickableSpan(), ssb.length()-5, ssb.length(), 0);
tv.setText(ssb);
tv.setMovementMethod(LinkMovementMethod.getInstance());
tv.setOnTouchListener(new TextViewOnTouchListener());
Le TextViewOnTouchListener:
class TextViewOnTouchListener implements OnTouchListener{
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("TextView", "onTouch");
return false;
}
}
Le TestClickableSpan:
class TestClickableSpan extends ClickableSpan{
@Override
public void onClick(View arg0) {
Log.d("ClickableSpan", "Confirm OnClick: "+arg0.toString());
}
}
Avez-vous trouvé la solution? –
@KiranKumar vérifier ma réponse ci-dessous – dor506