Android实现微信朋友圈评论EditText效果

 更新时间:2022年08月02日 11:27:49   作者:candy_rjr  
这篇文章主要为大家详细介绍了Android实现微信朋友圈评论EditText效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文主要讲解实现微信朋友圈评论EditText效果思路,供大家参考,具体内容如下

效果图

当我们点击某一天朋友圈的评论是,列表也会跟随着滑动,使得键盘刚好在我们点击的那条评论上方

getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
  @Override
  public void onGlobalLayout() {
  // 这里可以监听到键盘显示与隐藏时界面可视区域的变化
  Rect rect = new Rect();
  View decorView = getWindow().getDecorView();
  decorView.getWindowVisibleDisplayFrame(rect);
  int displayHeight = rect.bottom - rect.top;
  // 拿到键盘的高度,可能会有误差,需要优化
  keyboardHeight = decorView.getHeight() - displayHeight;
  if (displayHeight * 1.0 / decorView.getHeight() > 0.8) {
   dialog.dismiss();
  }
  }
 });

考虑到评论的EditText是可以隐藏的,所以把它写到Dialog中,初始化Dialog的代码就不贴出来了

点击弹出Dialog

private void showInputComment(View commentView, final int position) {
   // 拿到评论按钮在屏幕中的坐标
   final int rvInputY = getY(commentView);
   // 拿到评论按钮高度
   final int rvInputHeight = commentView.getHeight();
   dialog.show();

   handler.postDelayed(new Runnable() {
    @Override
    public void run() {
     int dialogY = getY(dialog.findViewById(R.id.dialog_layout_comment));
     // 滑动列表
     rv.smoothScrollBy(0, rvInputY - keyboardHeight + dialogY + rvInputHeight);
    }
   }, 300);
  }

  /**
   * 拿到View在屏幕中的坐标
   * @param commentView
   * @return
   */
  private int getY(View commentView) {
   int[] outLocation = new int[2];
   commentView.getLocationOnScreen(outLocation);
   return outLocation[1];
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Bitmap引起的OOM问题

    Bitmap引起的OOM问题

    这篇文章主要介绍了Bitmap引起的OOM问题,为什么会引起,以及避免引起的方法,文中有详细的代码示例,有需要的朋友可以参考下
    2023-04-04
  • Kotlin中的密封类和密封接口及其应用场景

    Kotlin中的密封类和密封接口及其应用场景

    在Kotlin中,密封类和密封接口是用于表示受限类型层次结构的特殊类和接口。密封类和密封接口可以在一定程度上限制类型的继承层次,使编译器能够更好地检测代码中的错误,并增强代码的可读性和可维护性
    2023-05-05
  • ToolBar中menu无法同时显示图标和文字问题的解决方法

    ToolBar中menu无法同时显示图标和文字问题的解决方法

    这篇文章主要为大家详细介绍了ToolBar中menu无法同时显示图标和文字问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • Android自定义View-Paint详解

    Android自定义View-Paint详解

    这篇文章主要介绍了Android自定义View-Paint详解,对Paint感兴趣的同学可以参考下
    2021-04-04
  • Android创建与解析XML(二)——详解Dom方式

    Android创建与解析XML(二)——详解Dom方式

    本篇文章主要介绍了Android创建与解析XML(二)——详解Dom方式 ,这里整理了详细的代码,有需要的小伙伴可以参考下。
    2016-11-11
  • 解析Android ANR问题

    解析Android ANR问题

    ANR 的全称是 Application No Responding,即应用程序无响应,具体是一些特定的 Message (Key Dispatch、Broadcast、Service) 在应用的UI线程(主线程)没有在规定的时间内处理完,进而触发 ANR 异常
    2021-01-01
  • Android 自定义图片地图坐标功能的实现

    Android 自定义图片地图坐标功能的实现

    最近项目要求实现一个在自定义地图图片上添加坐标信息的功能,类似于在图片做标注的功能,这种功能纠结该如何实现呢?下面小编通过实例代码给大家介绍Android 自定义地图的实现,需要的朋友参考下吧
    2021-07-07
  • Android自定义View控件实现刷新效果

    Android自定义View控件实现刷新效果

    这篇文章主要介绍了Android自定义View控件实现刷新效果的相关资料,非常不错具有参考借鉴价值,需要的朋友可以参考下
    2016-11-11
  • Android设置当TextView中的文字超过TextView的容量时用省略号代替

    Android设置当TextView中的文字超过TextView的容量时用省略号代替

    这篇文章主要介绍了Android设置当TextView中的文字超过TextView的容量时用省略号代替 ,需要的朋友可以参考下
    2017-03-03
  • Android 动态菜单实现实例代码

    Android 动态菜单实现实例代码

    这篇文章主要介绍了Android 动态菜单实现实例代码的相关资料,这里附有实例代码及实现效果图,需要的朋友可以参考下
    2017-01-01

最新评论