目前Android中聊天室的实现大多为自定义的recyclerview,其中每一条用户发的信息都是recyclerview的一个item。最近我添加了聊天内容可复制的功能,于网上搜索得知可以在textview布局属性中设置
android:textIsSelectable="true"
或者在代码中设置
textview.setTextIsSelectable(true);
即可。该方法虽然简单,但是会引起一系列的问题,这也是为什么不推荐该方法,如果因此造成了很多困扰并且此博客无法解决你的问题的话我建议你自己自定义一个复制菜单栏,相关博客有很多,就不在赘述。
问题1:长按复制之后点击输入框无法调起软键盘
问题2:当聊天内容布满页面时,下划至聊天室底端,再点击输入框会导致页面自动滚动。
两个问题的导致原因一致,但是解决方法不同。
我们先来看看这个setTextIsSelectable方法的内部:
public void setTextIsSelectable(boolean selectable) {
if (!selectable && mEditor == null) return; // false is default value with no edit data
createEditorIfNeed