Closed shitou9999 closed 7 years ago
MultiActionTextView仅仅对内部的dispatchTouchEvent事件做了一点扩充,保证TextView的HighlightColor在触摸ACTION_DOWN事件下亮起,而ACTION_UP事件下消失。然后内置了一个OnClickListener事件,此事件协同用户设置的点击事件,他将MultiActionClickableSpan的拦截事件置于更高一层,如果MultiActionClickableSpan拦截点击事件,那么点击这部分文字就不会响应TextView的OnClickListener事件,如果不拦截,则MultiActionClickableSpan与TextView的点击事件都会响应。自定义控件新增的setText(CharSequence text, MultiActionClickableSpan... actions)方法,其实际上调用的还是原来的TextView原生的setText(CharSequence text)方法。所以从原理上是不存在跟listview冲突,而实际使用上,我个人用该控件在RecyclerView中配合SwipeRefreshLayout再加上RecyclerView底部加载更多实现的是类似于微信朋友圈功能,”某某对某某回复:xxxxx“,使用过程中并未出现过你描述的问题,因此你需要看看是否在listview的View复用中有什么弄错了。
嗯嗯,谢谢你,我在简书上看到的,我在仔细看看
谢谢给我讲解的这么详细
不客气的,不过我看消息不是很及时,望见谅。
我最后用SpannableString写的很麻烦,我看你那个很简洁,但是不是很会用,我listivew中用的是简书上面的写法,我也是在适配器中和其他控件那样使用的,就是我说的那个问题,能不能告诉我下写法?
我之前项目对其进行了业务封装,如果可以你可将Adapter发给我看一下,我下午测试一下ListView上使用是否存在问题。
在ListView中使用发现有你提出的该问题,我排查排查原因
RecyclerView当中不存在该问题,可能问题出现在dispatchTouchEvent事件里面,我回头看看怎么处理。
已经修复了该Bug,你可以更新到1.0.1版本。
恩,好的,辛苦啦,明天我再试下。感谢。
还是有点问题的,每一项首次点击无效,第二次点击才可以的, 我对事件分发不是很熟看不大懂 MultiActionClickableSpan action1 = new MultiActionClickableSpan(2, 4, R.color.tab_color_unckeck, true, false, new MultiActionClickableSpan.OnTextClickedListener() { @Override public void onTextClicked(View view, MultiActionClickableSpan span) { ToastUtils.ShowToastMessage("点击了",context); } }); vh2.test.setText("回复石头哈哈哈哈哈哈哈",action1);
可能是控件获取不到焦点,我再看看。
没错就是控件拿取不到焦点,目前解决方案为让MultiActionTextView一直假装自己获取着焦点,已修复该问题,但需要注意的是其Focused状态,你可以更新到1.0.2使用了。
多谢,这两天项目忙上线没有及时回复,我再试下,辛苦了
你好作者,我用了这个自定义的Textview在listview中使用点击第一次没反应,点击第二次才显示提示信息,并且有些点击直接跳到listivew顶部,我想问下这个自定义控件可以在带上拉下拉控件中使用吗?谢谢