安卓端小问题巧解记录

安卓端小问题巧解记录

RecyclerView刷新单个item(notifyItemXXXX)导致闪烁的问题解决方案:

1.调用RecyclerView的adapter的setHasStableIds方法穿参数为true ,  "adapter.setHasStableIds(true)"
2.重写RecyclerView的adapter的getItemId方法,返回position
3.将Recyclerview的itemAnimator 设置为null

安卓富文本(SpannableString)与Textview点击事件冲突解决,仅解决一个spann的冲突形势
可以直接使用selectionStart来进行区分点击事件的动作

//构建富文本对象
 var spannable = SpannableString(msg)
 spannable.setSpan(object :ClickableSpan(){
        override fun onClick(widget: View) {}
        override fun updateDrawState(ds: TextPaint) {ds.color = Res.color(R.color.color_159CD6);ds.isUnderlineText = false}
        }
        ,start,end, Spanned.SPAN_INCLUSIVE_EXCLUSIVE)
 //设置富文本给textview显示       
 textview.text=spannable     
 textview.movementMethod= LinkMovementMethod.getInstance()
 //textview的点击事件中进行事件的区分处理  
 textview.apply{/*后面是设置textivew的点击事件*/click{if(selectionStart==-1&&selectionEnd==-1){/*点击了非spanned标记的文字区域*/}else{/*点击了spanned标记的文字queue*/}}}          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值