У меня есть TextView
с ClickableSpan
, в котором layout_height и layout_width имеют значение wrap_content.
Когда текст в TextView
не слишком длинный, он работает нормально.Когда текст настолько длинный, что занимает 2 строки, он также работает нормально, но имеет странное поведение.
Именно тогда я щелкнул по пустому пространству второй строки (пока не заполняется текстом, но является частью *).1008 *), вызывается обратный вызов ClickableSpan
onClick()
.
Я не ожидаю этого, так как щелкнул только по пустому пространству, но не по расширенному тексту.Хотя это не сильно влияет, я хочу знать, что стоит за этим.
Я установил ClickableSpan
с кодом ниже:
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());
TextViewOnTouchListener:
class TextViewOnTouchListener implements OnTouchListener{
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("TextView", "onTouch");
return false;
}
}
TestClickableSpan:
class TestClickableSpan extends ClickableSpan{
@Override
public void onClick(View arg0) {
Log.d("ClickableSpan", "Confirm OnClick: "+arg0.toString());
}
}