首页 > 其他分享 >listview中的edittext输入状态时不要刷新listview

listview中的edittext输入状态时不要刷新listview

时间:2024-09-27 11:51:35浏览次数:9  
标签:heightDiff int edittext isKeyboardShowing 刷新 listview rect

我的listview是时时刷新的,这导致了listview中的edittext不能点击编辑,通过如下方法解决了此问题,监测屏幕的变化,如果弹出软键盘,则不更新,问题解决。

监测屏幕的代码如下

ViewTreeObserver observer = rootView.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        int screenHeight = rootView.getHeight();
        Rect rect= new Rect();
        rootView.getWindowVisibleDisplayFrame(rect);
        int visibleHeight = rect.height();
        int heightDiff = screenHeight-visibleHeight;
        isKeyboardShowing = heightDiff>screenHeight/4;
        LogUtil.d("onGlobalLayout","heightDiff="+heightDiff+";isKeyboardShowing="+isKeyboardShowing);
    }
});

edittext绑定数据的时候,做如下判断

if(etReagentAlarmVal.isFocused()) {
    if(!isKeyboardShowing){
        etReagentAlarmVal.setText(data.getReagentAlarmVal() + "");
    }
}else{
    etReagentAlarmVal.setText(data.getReagentAlarmVal() + "");
}

问题解决

标签:heightDiff,int,edittext,isKeyboardShowing,刷新,listview,rect
From: https://blog.51cto.com/u_16843399/12127486

相关文章

  • pbootcms提示:登录失败:表单提交校验失败,请刷新后重试!
    当使用PBootCMS后台登录时遇到“登录失败:表单提交校验失败,请刷新后重试!”的错误提示时,这通常是由于一些配置或环境问题导致的。以下是一些常见的解决方法:常见解决方法删除 runtime 目录切换PHP版本清除浏览器缓存检查CSRF令牌解决方法详细步骤方法一:删除 runtime......
  • vue项目部署到nginx后一刷新页面就404
    在Vue项目部署到Nginx服务器上时,遇到刷新页面显示404的问题,通常是因为Nginx无法正确地处理Vue路由。Vue应用的路由是前端路由,依赖于JavaScript来动态解析URL,当直接访问除根路径外的URL时,Nginx默认会尝试在服务器上找到对应的文件或目录,如果找不到就会返回404错误。为了解决这个问......
  • pythn自动化之allure报告动态刷新并邮件发送测试结果数据
    我们在做自动话测试时,一般情况下我们需要查看allure报告,需要allure启动一个服务,但是allure报告有个缺点就是报告不会自动刷新,你你能看到的页面报告就是第一次启动打开的报告,如果想要看到最新的服务报告,需要重新启动一下服务那么怎么样才能去看到我们想要的报告动态刷新呢?这里......
  • 电脑新建文件夹之后不显示,必须刷新后才出现问题
    电脑新建文件夹必须刷新后才出现的原因‌‌资源管理器缓存问题‌:‌Win10资源管理器有时会缓存文件列表,导致新建文件夹未能及时显示。‌1‌‌系统设置问题‌:系统的一些设置可能导致资源管理器不实时更新文件列表。‌‌第三方软件干扰‌:某些第三方软件可能会影响资源管理器的正......
  • Win10系统复制、粘贴、新建、删除文件或文件夹后需要手动刷新的解决办法
    有些win10系统可能会出现新建、粘贴、删除文件或文件夹后保持原来的状态不变,需要手动刷新,我这边新装的几个系统都有这个问题,已经困扰很久了,我从微软论坛和CSDN社区找了了很多方法都没解决,微软工程师给的建议包括重置资源管理器、修改注册表、用CMD修复等等,都没解决,接下来就给大家......
  • WPF ListView GridViewColumn DisplayMemeberBinding SystemDateTime sys:clr-namespa
    <Windowx:Class="WpfApp395.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft......
  • Android实战经验之如何使用DiffUtil提升RecyclerView的刷新性能
    本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点DiffUtil是一个用于计算两个列表之间差异的实用程序类,它可以帮助RecyclerView以更高效的方式更新数据。使用DiffUtil可以减少不必要的全局刷新,从而提高性能,特别是在处理......
  • Android实战经验之如何使用DiffUtil提升RecyclerView的刷新性能
    本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点DiffUtil是一个用于计算两个列表之间差异的实用程序类,它可以帮助RecyclerView以更高效的方式更新数据。使用DiffUtil可以减少不必要的全局刷新,从而提高性能,特......
  • 帝国cms无法刷新数据 帝国cms无法刷新数据库
    当帝国CMS无法刷新数据时,可能是由于多种原因造成的。刷新数据通常是指帝国CMS生成静态页面或更新缓存的过程。以下是一些排查和解决问题的步骤:1.检查文件和目录权限检查文件权限:确保帝国CMS的所有必要文件和目录都具有正确的权限,以允许系统对其进行读写操作。通常文件权限应该......
  • 帝国cms刷新首页空白怎么办
    当帝国CMS刷新首页后出现空白的情况时,这可能是由多种原因造成的。以下是一些常见的解决方法:1.检查数据库连接确保数据库连接正常。解决方法:检查数据库配置:打开e/config/config.php文件,确认数据库连接信息(如主机名、用户名、密码、数据库名)正确。测试数据库连接:使用数据库管......