Ho un TextView
con ClickableSpan
in quanto sia layout_height che layout_width è wrap_content.Comportamento strano ClickableSpan: chiamato onClick() quando si fa clic su spazio vuoto
Quando il testo in TextView
non è troppo lungo, funziona correttamente. Quando il testo è abbastanza lungo da richiedere 2 righe, funziona anche bene ma ha un comportamento strano.
cioè quando ho cliccato su uno spazio vuoto del secondo riga (non riempire con ancora un testo, ma parte di TextView
), il ClickableSpan
onClick()
callback viene chiamata.
Non me lo aspetto, ho fatto clic solo sullo spazio vuoto ma non sul testo con spanning. Anche se non influisce molto, voglio sapere cosa c'è dietro.
I impostare il ClickableSpan
con il codice di seguito:
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());
Il TextViewOnTouchListener:
class TextViewOnTouchListener implements OnTouchListener{
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("TextView", "onTouch");
return false;
}
}
Il TestClickableSpan:
class TestClickableSpan extends ClickableSpan{
@Override
public void onClick(View arg0) {
Log.d("ClickableSpan", "Confirm OnClick: "+arg0.toString());
}
}
Hai risolto questo? –
@KiranKumar guarda la mia risposta sotto – dor506