微信是我一直觉得在用户体验做的非常不错的一个产品,前两天一个朋友也要做类似朋友圈状态的回复的功能,要求就是跟微信的朋友圈状态回复一样,要求内容不被键盘遮住,于是研究了一下。
一开始的思路大致是这样的,我点击了listview的某一个item之后,软件盘弹出,这个时候,我可以获取到被遮住之后的最后一个可见的item,然后在根据我点击的item,就可以算出我要滚动多少个item。这样简单的实现即可保证listview点击的item不会被软键盘遮住。[listview demo github源码][1] 请checkoout solution这个tag
上面的逻辑没有错误实现起来也很方便,但是为了追求更佳精细的效果,这里我们只是滚动多少item,但是为了追求精细(zhuan B),采用另外一种移动指定的距离来实现类似上面的逻辑,因为微信里面的listview的情况不像我这里所展示的listview这么简单,我认为微信应该是重写了listview,对应的回复的item有可能不一定是listview,所以它是要动到制定的位置,所以这里也把这个逻辑给实现一下,[listview demo github源码][1] checkoout solution2这个tag
如有问题欢迎指正 [1]: https://github.com/leiweibo/listviewdemo