失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Android仿微信朋友圈4实现评论动态时输入框和软键盘自动定位到内容下面

Android仿微信朋友圈4实现评论动态时输入框和软键盘自动定位到内容下面

时间:2023-02-15 06:17:18

相关推荐

Android仿微信朋友圈4实现评论动态时输入框和软键盘自动定位到内容下面

最近做完朋友圈功能后,测试提出一个功能优化,在某些发布的动态下评论时软键盘和输入框遮当内容了,这个用户体验感觉不是很好,于是根据今日头条和其他热门的App评论时软键盘和输入框都是在内容下面.Scroller是一个专门用于处理滚动效果的工具类,可能在大多数情况下,我们直接使用Scroller的场景并不多,但是很多大家所熟知的控件在内部都是使用Scroller来实现的,如ViewPager、ListView等。郭神的这篇博客分析了原理[Android Scroller完全解析,关于Scroller你所需知道的一切]

效果图如下:

关键代码:

/*** 获取控件左上顶点Y坐标** @param view* @return*/private int getCoordinateY(View view) {int[] coordinate = new int[2];view.getLocationOnScreen(coordinate);return coordinate[1];}

@Overridepublic void onClick(int position, final View v) {final int itemBottomY = getCoordinateY(v) + v.getHeight();//item 底部y坐标if (likePopupWindow == null) {likePopupWindow = new LikePopupWindow(this, 0);}likePopupWindow.setOnPraiseOrCommentClickListener(new OnPraiseOrCommentClickListener() {@Overridepublic void onPraiseClick(int position) {Toast.makeText(MainActivity.this, "点赞成功", Toast.LENGTH_SHORT).show();likePopupWindow.dismiss();}@Overridepublic void onCommentClick(int position) {llComment.setVisibility(View.VISIBLE);etComment.requestFocus();CommonUtils.showSoftInput(MainActivity.this, llComment);likePopupWindow.dismiss();etComment.setHint("说点什么");etComment.setText("");v.postDelayed(() -> {int y = getCoordinateY(llComment);//评论时滑动到对应item底部和输入框顶部对齐recyclerView.smoothScrollBy(0, itemBottomY - y);}, 300);}@Overridepublic void onClickFrendCircleTopBg() {}@Overridepublic void onDeleteItem(String id, int position) {}}).setTextView(0).setCurrentPosition(position);if (likePopupWindow.isShowing()) {likePopupWindow.dismiss();} else {likePopupWindow.showPopupWindow(v);}}

由于没有用截屏软件做动图,所以效果看上去不是很好.如有问题欢迎小伙伴们积极提出,我会及时改正.

完整代码地址如下:

ExpandTextView: 实现仿微信朋友圈列表多类型布局,图片点击放大、保存,包含点赞、评论、消息提醒、视频播放等功能

如果觉得《Android仿微信朋友圈4实现评论动态时输入框和软键盘自动定位到内容下面》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。