TextView的部分点击事件和点击事件
1.在TextView中實現部分點擊
我在activity中使用了clickablespan這個類,然后完全按照視頻上的操作下來,發現點擊時不響應,于是我便設置了電話的鏈接,發現這時點擊
自己設置的區域就會響應,但是如果我把電話鏈接刪了,這時就又不會響應,于是我便上網查找,如何設置Textview的部分點擊,發現是因為我
少加了一行代碼myTextView.setMovementMethod(LinkMovementMethod.getInstance());加上之后就行了(可是視頻里也沒有,可能是視頻太早了,
系統的源代碼進行了細微的更改)。
結論:使用clickablespan為TextView設置部分點擊,記得要為TextView設置movementMethod。
2.在TextView中實現完全點擊
這個只需要為textview設置監聽器就行,由于我是在之前的代碼中直接加入的,然后當我點擊我之前設置的部分點擊的區域時,發現是先調用
clickablespan中的onclick(),然后是onclicklistener中的onclick(),而點擊電話的鏈接時,是直接跳轉到撥打電話的頁面,即不會調用
clickablespan中的onclick()方法,也不會調用onclicklistener中的onclick()方法,因為沒有打印出這兩個方法中的輸出語句。同時這里有一點
需要提一下,如果這時你在xml文件中聲明android:clickable="false", android:linksClickable="false",這時你會發現,無論是自己設置的
部分區域,亦或是電話的鏈接,還是textview中的任何地方,都是可以點擊的。這是因為無論是setOnClickListener會強制改變clickable屬性,
而myTextView.setMovementMethod(LinkMovementMethod.getInstance());會改變android:linksclickable的屬性(這里得提一點,如果你將
myTextView.setMovementMethod(LinkMovementMethod.getInstance())代碼去掉,然后設置android:linksclickable="true",這時就會有一個有趣的
現象,若textview的值中有phone,web之類的,那么無論是自己設置的區域還是phone,web都可以點擊,若是沒有phone,web之類的,那么自己設置的
區域就無法點擊,感覺是android:linksclickable="true"屬性是對于android:autolink而設置的,若textview中的內容存在這些,則會讓linksclickable
設置為true,否則不會。),所以都可以點擊。如果你將setonclicklistener()去掉,然后設置android:linksClickable="true",android:clickable="false",
發現自己設置的區域和電話依然可以點擊。
結論:為TextView設置完全點擊時,為TextView設置onclicklistener監聽器,若同時還有部分點擊,以及電話。那么當點擊設置的部分點擊區域時,先運行clickablespan中的onclick(),然后是onclicklistener中的onclick(),若點擊電話的鏈接,是直接跳轉到撥打電話的頁面,即不會調用clickablespan中的onclick()方法,也不會調用onclicklistener中的onclick()方法。同時setOnClickListener會強制改變clickable屬性,而myTextView.setMovementMethod(LinkMovementMethod.getInstance());會改變android:linksclickable的屬性(這里得提一點,如果你將myTextView.setMovementMethod(LinkMovementMethod.getInstance())代碼去掉,然后設置android:linksclickable="true",這時就會有一個有趣的現象,若textview的值中有phone,web之類的,那么無論是自己設置的區域還是phone,web都可以點擊,若是沒有phone,web之類的,那么自己設置的區域就無法點擊,感覺是android:linksclickable="true"屬性是對于android:autolink而設置的,若textview中的內容存在這些,則會讓linksclickable設置為true,否則不會。)。
作者:sakurajiang
鏈接:https://www.jianshu.com/p/a1f879df5639
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權并注明出處。
作者:sakurajiang
鏈接:https://www.jianshu.com/p/a1f879df5639
來源:簡書
?
總結
以上是生活随笔為你收集整理的TextView的部分点击事件和点击事件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android Notification
- 下一篇: 第三方免费加固横向对比