[《Android仿手机QQ空间动态评论,自动定位到输入框》](http://blog.csdn.net/u012964944/article/details/51153686)
手机QQ空间浏览好友动态时,可以直接对动态评论,点击某条评论,动态列表自动滚动,使输入框刚好在该评论下面,而不会覆盖住评论内容。如下图所示,
[img](http://img.blog.csdn.net/20160414171330269?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
首先要实现输入框刚好在输入面板上面,且动态列表不会被挤上去。可以使用对话框的形式,这样输入框不会影响原有的布局,弹出的对话框布局如下所示,点击EditText时,红色块的内容将位于输入法上面。在这里我把ScrollerView的背景设为透明。其实QQ空间的输入框也是以对话框的形式弹出,因为弹出对话框时,原本全屏的布局突然多了一条状态栏。
接着就是要让点击的评论刚好在评论输入框上面,可以使用ListView.smoothScrollBy(distance, duration)让列表滚动到相应位置,但是难点是如何计算出滚动的距离distance。
如下图所示,我们主要计算弹出输入面板后的输入框和评论之间的距离(绿色线条的长度)。通过View.getLocationOnScreen()方法可以计算出view在屏幕上的坐标(x,y),那么列表滑动的距离distance = listview的y坐标 - 输入框的y坐标。
[img](http://img.blog.csdn.net/20160414183447906?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
最后要弄的就是评论中,评论者、接收者和评论内容用不同的颜色显示,且点击时有点击效果。这里可以通过TextView.setText(Html.fromHtml(content, imageGettor, tagHandler))来实现,自定义标签,通过自定义的标签解析类Html.TagHandler来响应不同标签的操作。这里我自定义了commentator、receiver、content标签,列入一条评论的字符串形式为“<commentator>用户1</commentator> 回复 <receiver>用户2</receiver>:<content>评论内容</content>”,点击content标签时对该评论的评论者进行回复。
在ListView中,因为Item里面的子View使用了ClickableSpan,导致ListView的OnItemClickListener失效,解决的方法可以在getView中加入下列代码,阻止ListView里面的子View拦截焦点。
```java
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView != null) {
//防止ListView的OnItemClick与item里面子view的点击发生冲突
((ViewGroup) convertView).setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
}
}
```
难点都已经解决了,最后实现的效果如下:
![img](http://img.blog.csdn.net/20160414182211890?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
没有合适的资源?快使用搜索试试~ 我知道了~
android评论回复自动定位到输入框
共39个文件
xml:20个
java:7个
png:4个
1星 需积分: 48 23 下载量 82 浏览量
2017-04-17
16:52:35
上传
评论
收藏 64KB ZIP 举报
温馨提示
可以直接对动态评论,点击某条评论,动态列表自动滚动,使输入框刚好在该评论下面,而不会覆盖住评论内容
资源推荐
资源详情
资源评论
收起资源包目录
QZoneComment-master.zip (39个子文件)
QZoneComment-master
QzoneComment.iml 724B
res
drawable-ldpi
ic_launcher.png 3KB
drawable-hdpi
ic_launcher.png 9KB
drawable-xhdpi
ic_launcher.png 14KB
drawable
bg_input_comment.xml 254B
color
selector_comment_name.xml 515B
values
strings.xml 114B
styles.xml 177B
drawable-mdpi
ic_launcher.png 5KB
layout
item_header.xml 609B
view_input_comment.xml 2KB
item_moment.xml 3KB
view_comment_list_item.xml 617B
main.xml 988B
proguard-project.txt 781B
ant.properties 698B
build.xml 4KB
src
com
example
QzoneComment
model
User.java 249B
Moment.java 343B
Comment.java 427B
MomentAdapter.java 3KB
CommentFun.java 8KB
MainActivity.java 3KB
CustomTagHandler.java 5KB
.idea
uiDesigner.xml 9KB
scopes
scope_settings.xml 139B
misc.xml 576B
vcs.xml 164B
.name 12B
copyright
profiles_settings.xml 74B
modules.xml 264B
encodings.xml 1KB
compiler.xml 739B
workspace.xml 56KB
.gitignore 20B
local.properties 428B
project.properties 563B
README.md 3KB
AndroidManifest.xml 839B
共 39 条
- 1
资源评论
- BobbyMir2017-06-02我一星都不想给你,实在是评论要打星才能评论, 人家免费提供的东西,被你偷来加上一积分,才能下载,偷来也就算了,什么都不改,这玩意还有BUG,都不修复一下,原封不动就加积分,我真鄙视你!
weixin_35929559
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功