我有一個TextView
與ClickableSpan
因爲layout_height和layout_width都是wrap_content。ClickableSpan奇怪的行爲:點擊空白時調用onClick()
當TextView
中的文字不太長時,它工作正常。 當文本足夠長以至於需要2行時,它也可以正常工作,但有一些奇怪的行爲。
這就是當我點擊第二行的空白空間(未填充文本但是部分爲TextView
)時,調用ClickableSpan
onClick()
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());
}
}
您是否解決了這個問題? – 2013-12-30 01:48:43
@KiranKumar查看我的答案 – dor506 2014-07-28 12:58:13