android 仿微信朋友圈评论,获取当前说说的整体高度

山城忙碌人 2015-10-27 11:10:49
我现在做一个类似微信朋友圈的功能,点击某一条说说,弹出键盘到被点击说说的下方。目前遇到的问题是,无法准确算出当前被点击说说的准确高度。
我目前使用的方法如下:
屏幕总高度-键盘高度-回复的文本输入框-状态栏高度-标题栏高度-当前被点击项的高度=偏移量。
View listItem = circleAdapter.getView(currentPosition, null, circleList);//得到当前被点击项
int list_child_item_height = listItem.getMeasuredHeight()+ circleList.getDividerHeight();//得到被点击项的高度

int yOffset= screenHeight - keyboardHeight- articleReplyBox.getHeight() - titleBox.getHeight()- statusBarHeight - list_child_item_height;
listView.setSelectionFromTop(currentPosition, yOffset);//currentPosition 被点击项的下标,yOffset计算出来的偏移量
如果说说没有评论,或者评论的内容不长,只有简单的几个字,就不会出现问题,如果评论内容过长,导致换行,这种情况我就无法准确得到当前被点击项的高度。

未点击时

点击后键盘弹出,错位

通过日志发现的高度不一致



请问要实现微信朋友圈,点击说说,弹出键盘,键盘弹出到指定项这个需求,大家还有没有更好的办法,谢谢
...全文
4788 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
蜗牛君子 2016-12-09
  • 打赏
  • 举报
回复
谢谢, 已经看到了,已解决
山城忙碌人 2016-12-08
  • 打赏
  • 举报
回复
引用 19 楼 qq_34096526 的回复:
楼主。。。来一分demo824090361@qq.com
引用 20 楼 Moonlighting_ 的回复:
demo 呢?
例子 http://blog.csdn.net/bisubisu/article/details/50563557
蜗牛君子 2016-11-28
  • 打赏
  • 举报
回复
demo 呢?
qq_34096526 2016-07-13
  • 打赏
  • 举报
回复
楼主。。。来一分demo824090361@qq.com
山城忙碌人 2016-01-22
  • 打赏
  • 举报
回复
引用 10 楼 wingyip 的回复:
27603128@qq.com 楼主求一份 Demo 代码哈.
引用 11 楼 xinyuezhaizhu 的回复:
楼主的解决方法好像可行啊,有demo看吗?发一份看看吧,453825536@qq.com
引用 13 楼 Liu_BeiXi 的回复:
求发demo 605876390@qq.com
引用 13 楼 Liu_BeiXi 的回复:
求发demo 605876390@qq.com
引用 15 楼 sharp36 的回复:
楼主,能否分享一下demo 979702998@qq.com
引用 16 楼 tanwu520 的回复:
楼主,能否分享一下demo ,谢谢 644577146@qq.com
http://blog.csdn.net/bisubisu/article/details/50563557 例子在这里
山城忙碌人 2016-01-21
  • 打赏
  • 举报
回复
在这统一回复需要demo的朋友,由于这是一个正式的项目,无法直接把代码复制出来,我近期做一个demo,到时候发出来
tanwu520 2016-01-20
  • 打赏
  • 举报
回复
楼主,能否分享一下demo ,谢谢 644577146@qq.com
丶Kevin_ 2016-01-18
  • 打赏
  • 举报
回复
楼主,能否分享一下demo 979702998@qq.com
吴善革 2016-01-18
  • 打赏
  • 举报
回复
楼主你好 。。。。。
Liu_BeiXi 2016-01-11
  • 打赏
  • 举报
回复
求发demo 605876390@qq.com
qq_28810591 2016-01-05
  • 打赏
  • 举报
回复
楼主,求demo ,我的邮箱,dragonglory@126.com
青菜糊糊 2015-12-17
  • 打赏
  • 举报
回复
楼主的解决方法好像可行啊,有demo看吗?发一份看看吧,453825536@qq.com
wingyip 2015-12-12
  • 打赏
  • 举报
回复
27603128@qq.com 楼主求一份 Demo 代码哈.
山城忙碌人 2015-12-09
  • 打赏
  • 举报
回复
引用 5 楼 u014257012 的回复:
楼主弄出来了吗求份demo啊,308289006@qq.com
引用 6 楼 l1zheng 的回复:
同求 1465214537@qq.com
已经解决了,我计划周末抽时间做一个demo出来,放在csdn,到时候提供下载地址
山城忙碌人 2015-12-09
  • 打赏
  • 举报
回复
引用 7 楼 yaohuaqiang 的回复:
请问楼主解决了吗. 刚好我也遇到这种问题. 如果listview没有滚动空间的话,怎样做到这种效果... 微信的不管有没有滚动空间,都能与当前项对齐..
没有滚动空间,什么意思????
yaohuaqiang 2015-11-29
  • 打赏
  • 举报
回复
请问楼主解决了吗. 刚好我也遇到这种问题. 如果listview没有滚动空间的话,怎样做到这种效果... 微信的不管有没有滚动空间,都能与当前项对齐..
qeaq 2015-11-24
  • 打赏
  • 举报
回复
楼主弄出来了吗求份demo啊,308289006@qq.com
l1zheng 2015-11-24
  • 打赏
  • 举报
回复
同求 1465214537@qq.com
山城忙碌人 2015-10-27
  • 打赏
  • 举报
回复
需要实现的效果如下:

另外我也偿试获取评论的条数,计算每个评论的高度。比如以下代码,还是不准确


ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) {
return;
}
int totalHeight = 0;
int count = listAdapter.getCount();
for (int i = 0; i < count; i++) {
View listItem = listAdapter.getView(i, null, listView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
山城忙碌人 2015-10-27
  • 打赏
  • 举报
回复
引用 3 楼 jklwan 的回复:
经测试时有效果的 主要代码如下

                         if (circlelistAdapter == null) {
                                return;
                            }
                            if (circlelistAdapter.getCount()==selectPositon+1){
                                listView.setSelection(listView.getBottom());
                            }else{
                                int off = screenH - statusBarH - titleBarH - keyBoardHeight;
                                listView.setSelectionFromTop(selectPositon + 1, off);
                            }
非常感谢,我研究下!
加载更多回复(2)

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧