RecyclerView踩坑之输入法弹出数据自动滚动

RecyclerView在使用过程中确实能称之为神器,但也难免会遇到各种问题,接下来就把我今天遇到的问题来记录一下。

背景是建立在IM上的,我们使用环信来做即时通讯。聊天窗口就是使用RecyclerView做的,
先看看效果吧。
RecyclerView踩坑之输入法弹出数据自动滚动_第1张图片

其中文本和语音不同的布局,采用的是adapter的getItemViewType决定的,具体的实现在这里就不贴了。
接下来说重点,在点击输入框输入文本时,需要底部的数据自动滚动到输入法上方,效果看图。
RecyclerView踩坑之输入法弹出数据自动滚动_第2张图片

那么这个效果是如何实现的呢?
说说我以前用过的几种方法

  1. 监听view的sizechange状态,自动滚动数据
  2. 使用listview的android:transcriptMode

监听sizechange比较麻烦,我就不写了,感兴趣的可以自行百度。
正是因为重写view比较麻烦,所以在之后我又发现了一种简单的方法。那个时候用的是Listview,直接在布局文件中加入android:transcriptMode属性就好了。至于这个属性的值有normal、alwaysScroll、disabled,不同值的不同效果,可以自行设置试一试,贴一个链接吧http://blog.csdn.net/natloc/article/details/50850099。

上面说了很多,但是那毕竟是昨日黄昏了,我现在用的是RecyclerView,按照之前的方法,发现根本就没有android:transcriptMode这个属性,太纠结了~~怎么办?换回Listview吗?不是我的性格啊,继续找。终于在RecyclerView的LayoutManager中找到了结果。
我使用的是LinearLayoutManager,其中linearLayoutManager.setStackFromEnd(true);
整个世界都光明了。。。。。。。。

你可能感兴趣的:(Android)