textView autolink 和onclick 點選事件衝突
阿新 • • 發佈:2019-01-28
http://blog.csdn.net/dadzyl/article/details/39315445
extView設定autolink後,點選會自動響應超連結的處理,想要點選除超連結的部分實現跳轉到其他activity,現實現自定義控制元件。
1.自定義AutoLinkTextView
- import android.content.Context;
- import android.text.SpannableString;
- import android.text.style.ClickableSpan;
- import android.util.AttributeSet;
-
import
- import android.widget.TextView;
- publicclass AutoLinkTextView extends TextView {
- public AutoLinkTextView(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
- }
-
public AutoLinkTextView(Context context, AttributeSet attrs) {
- super(context, attrs);
- }
- public AutoLinkTextView(Context context) {
- super(context);
- }
- @Override
- publicboolean onTouchEvent(MotionEvent event) {
- super.onTouchEvent(event);
- SpannableString span = new SpannableString(getText());
-
ClickableSpan[] links = span.getSpans(getSelectionStart(),
- getSelectionEnd(), ClickableSpan.class);
- if (links.length != 0) {
- returntrue;
- }
- returnfalse;
- }
- }
2.layout
在引用AutoLinkTextView的根佈局中需新增屬性 android:descendantFocusability="blocksDescendants"