Closed tmxd09887 closed 4 years ago
点击其中的SPAN(点击区域),事件响应、背景色改变都有点慢。我看了DEMO都是正常快速反应的,是我代码实现有什么问题吗?
谢谢
代码 String userName = "我的用户名ABC"; SpannableString sp = new SpannableString(userName + ": " + commentBeanList.get(groupPosition).getReplyList().get(childPosition).getContent()); sp.setSpan(new QMUITouchableSpan(childHolder.tv_content, R.attr.app_skin_span_normal_text_color, R.attr.app_skin_span_pressed_text_color, Color.TRANSPARENT, context.getResources().getColor(R.color.gray)) { @Override public void onSpanClick(View widget) { ToastUtils.showLong("click me"); } }, 0, userName.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
childHolder.tv_content.setMovementMethodDefault(); childHolder.tv_content.setNeedForceEventToParent(true);
补充:多次测试发现,这个页面是显示评论和评论者用户名的,显示了很多个评论和用户名点击反应就会响应慢。
第4、5个控制背景的参数也应该传 attr 的, 如果你想支持夜间模式/换肤,那么就应该全部使用 attr, 如果不支持,那使用 4 参数的构造器就行了
谢谢回答
请问部署多个SPAN,会导致反应慢吗?
不会
点击其中的SPAN(点击区域),事件响应、背景色改变都有点慢。我看了DEMO都是正常快速反应的,是我代码实现有什么问题吗?
谢谢
代码 String userName = "我的用户名ABC"; SpannableString sp = new SpannableString(userName + ": " + commentBeanList.get(groupPosition).getReplyList().get(childPosition).getContent()); sp.setSpan(new QMUITouchableSpan(childHolder.tv_content, R.attr.app_skin_span_normal_text_color, R.attr.app_skin_span_pressed_text_color, Color.TRANSPARENT, context.getResources().getColor(R.color.gray)) { @Override public void onSpanClick(View widget) { ToastUtils.showLong("click me"); } }, 0, userName.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
childHolder.tv_content.setMovementMethodDefault(); childHolder.tv_content.setNeedForceEventToParent(true);
补充:多次测试发现,这个页面是显示评论和评论者用户名的,显示了很多个评论和用户名点击反应就会响应慢。