Tôi có một TextView
với ClickableSpan
trong đó cả layout_height và layout_width là wrap_content.ClickableSpan hành vi lạ: onClick() được gọi khi nhấp vào khoảng trống
Khi văn bản trong TextView
không quá dài, nó hoạt động tốt. Khi văn bản đủ dài để nó có 2 dòng, nó cũng hoạt động tốt nhưng có một số hành vi lạ.
Đó là khi tôi nhấp vào không gian trống của dòng thứ hai (không điền văn bản nhưng là một phần của TextView
), gọi lại số ClickableSpan
onClick()
.
Tôi không mong đợi điều này khi tôi chỉ nhấp vào không gian trống mà không phải văn bản được kéo dài. Mặc dù nó không ảnh hưởng nhiều, tôi muốn biết những gì đằng sau.
tôi đặt ClickableSpan
với mã bên dưới:
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());
Các TextViewOnTouchListener:
class TextViewOnTouchListener implements OnTouchListener{
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.d("TextView", "onTouch");
return false;
}
}
Các TestClickableSpan:
class TestClickableSpan extends ClickableSpan{
@Override
public void onClick(View arg0) {
Log.d("ClickableSpan", "Confirm OnClick: "+arg0.toString());
}
}
Bạn đã giải quyết vấn đề này chưa? –
@KiranKumar xem câu trả lời của tôi bên dưới – dor506