android 难题,Android开发中遇到的难题与解决方案

2023-11-04

引用资源文件错误,导致运行失败,无法确定错误位置

解决方案:在Android Studio的Terminal控制台输入:gradlew compileDebugSources

获取webView的高度

public void initView(){

webView.setWebViewClient(new WebViewClient(){

@Override

public void onPageFinished(WebView view, String url) {

super.onPageFinished(view, url);

setDetailViewHeight();

}

});

/**

* 获取webView的高度

*/

public void setDetailViewHeight() {

ViewTreeObserver viewTreeObserver = webView.getViewTreeObserver();

viewTreeObserver.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {

@Override

public boolean onPreDraw() {

int webHeight = webView.getMeasuredHeight();

if (webHeight != 0) {

webView.getViewTreeObserver().removeOnPreDrawListener(this);

}

return false;

}

});

}

XRecyclerView上拉加载刷新有3s左右的延迟

注意:出现的问题可能和嵌套在ScrollView布局中有关系,具体原因不太清楚,有清楚的可以评论告知一下。

解决方法:

recyclerView.setHasFixedSize(true);

recyclerView.setNestedScrollingEnabled(false);

XRecyclerView嵌套不可滑动ListView时,下拉刷新卡顿

转载自:Android 实现ListView不可滚动效果

public class ScrollDisabledListView extends ListView {

private int mPosition;

public ScrollDisabledListView(Context context) {

super(context);

}

public ScrollDisabledListView(Context context, AttributeSet attrs) {

super(context, attrs);

}

public ScrollDisabledListView(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

}

@Override

public boolean dispatchTouchEvent(MotionEvent ev) {

final int actionMasked = ev.getActionMasked() & MotionEvent.ACTION_MASK;

if (actionMasked == MotionEvent.ACTION_DOWN) {

// 记录手指按下时的位置

mPosition = pointToPosition((int) ev.getX(), (int) ev.getY());

return super.dispatchTouchEvent(ev);

}

if (actionMasked == MotionEvent.ACTION_MOVE) {

// 最关键的地方,忽略MOVE 事件

// ListView onTouch获取不到MOVE事件所以不会发生滚动处理

return true;

}

// 手指抬起时

if (actionMasked == MotionEvent.ACTION_UP

|| actionMasked == MotionEvent.ACTION_CANCEL) {

// 手指按下与抬起都在同一个视图内,交给父控件处理,这是一个点击事件

if (pointToPosition((int) ev.getX(), (int) ev.getY()) == mPosition) {

super.dispatchTouchEvent(ev);

} else {

// 如果手指已经移出按下时的Item,说明是滚动行为,清理Item pressed状态

setPressed(false);

invalidate();

return true;

}

}

return super.dispatchTouchEvent(ev);

}

}

同时需要在Java代码中为ListView设置默认取消焦点

listView.setFocusable(false);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android 难题,Android开发中遇到的难题与解决方案 的相关文章

  • Cannot resolve plugin org.apache.maven.plugins:maven-install-plugin:2.5.2

    项目场景 今天在创建springboot项目的时候 遇到一个与maven相关的报错 仅此记录一下 防止以后继续踩坑 问题描述 在idea gt settings设置maven的目录信息完后 就遇到了以下报错 原因分析 经排查后发现是自己的本
  • vs code 用户代码片段失效问题

    例如 vue1 scope javascript typescript prefix v1 body new Vue el data description Log output to console 注意 1 如果没有scope的话 试着
  • 【深度学习】yolov5+deepsort 完成计数和行人行人重识别的追踪

    文章目录 前言 1 知识体系 1 1 前置说明 1 2 Sort的工作流程 1 3 deepsort 2 实践应用 3 干货补充 总结 前言 行人重识别是计算机视觉的基本任务之一 首先要有一个detector 检测器来检测到目标 然后将检测
  • Multitor:一款带有负载均衡功能的多Tor实例创建工具

    关于Multitor Multitor是一款带有负载均衡功能的多Tor实例创建工具 Multitor的主要目的是以最快的速度完成大量Tor进程的初始化 并将大量实例应用到我们日常使用的程序中 例如Web浏览器和聊天工具等等 除此之外 在该工
  • Linux配置SSH无密码登录

    下文以配置2台主机无密码登录为例 本机名为master 另外一台机子名为slave1 1 配置主机名 分别修改2台机子的主机名为master和slave1 具体方法 CentOS修改主机名 hostname 2 配置hosts 在2台主机上
  • 媒体查询响应式布局

    移动端样式开始 移动端共用样式开始 media screen and min width 320px and max width 1169px 移动端共用样式结束 768 1169样式开始 1169根据设计图内容宽度来定 media scr
  • odoo13源码-004: models_1

    coding utf 8 Part of Odoo See LICENSE file for full copyright and licensing details Object Relational Mapping module Hie
  • 基于Qt5的计算器设计

    Qt5的信号与槽 描述 信号槽是 Qt 框架引以为豪的机制之一 所谓信号槽 实际就是观察者模式 发布 订阅模式 当某个事件发生之后 比如 按钮检测到自己被点击了一下 它就会发出一个信号 signal 这种发出是没有目的的 类似广播 如果有对
  • Linux下SVN客户端基本使用教程-使用命令

    Subversion SVN 是一个版本控制系统 用于管理文件和目录的历史记录 在 Linux 中 SVN 客户端提供了一组命令 用于与 SVN 服务器交互 检出 提交 更新和管理版本控制项目 以下是一些 Linux SVN 客户端常用的命
  • 【C语言】不使用strcat(字符串连接函数)将两个字符串连接起来。

    解题思路 定义两个字符数组A B 其中A稍大些 将第一个字符串存入A 再将第二个字符串存入B 然后将B中的字符串紧接在A后即可 采用for循环 具体见程序 include
  • matlab矩阵除法

    matlab中除法有四种 作除 右除 对于标量的运算 与 用法一致 a b 或a b表示a除以b 与 用法一致 a b 或a b表示b除以a 对于矩阵运算 a b 表示矩阵a乘矩阵b的逆矩阵 与 a inv b 一致 a b 表示矩阵a的逆
  • 【无标题】nltk安装wordnet出错[nltk_data]Error loading wordnet:<urlopen error [Errno 111]...>

    一 下载wordnet库报错 二 离线下载nltk data 链接 https pan baidu com s 1B70gBI54aERVNcApUrFDXQ 提取码 snec 下载成功后解压得到nltk data的文件夹 三 把nltk
  • 【CAM】CAM(Class Activation Mapping)——可视化CNN的特征定位

    文章目录 一 CAM Class Activation Mapping 二 CAM技术实现 2 1 网络修改 2 2 微调 2 2 特征提取 三 总结 Reference 完整代码见Github https github com capsu
  • c 中内存拷贝函数(C memcpy)详解

    文章转载自 http blog csdn net sszgg2006 article details 7989404 原型 void memcpy void dest const void src unsigned int count 功能
  • python基础----06-----文件读写追加操作

    一 文件编码概念 思考 计算机只能识别 0和1 那么我们丰富的文本文件是如何被计算机识别 并存储在硬盘中呢 答案 使用编码技术 密码本 将内容翻译成0和1存入 常见编码有UTF8 gbk等等 不同的编码 将内容翻译成不同的二进制 二 文件的
  • (STM32CubeMX)超声波模块测距传感器学习笔记

    超声波模块HC SR04 一 简介 1 概念 2 电路连接 3 工作原理 二 STM32CubeMX配置步骤 1 芯片选择 2 引脚配置 3 时钟配置 4 其他配置 三 keil5代码 1 串口重定向 2 超声波模块编写 一 简介 1 概念
  • LVGL学习笔记6 - 输入设备

    目录 1 移植文件 2 移除多余代码 3 输入设备初始化 4 输入设备读回调函数 4 1 LV INDEV TYPE POINTER 4 2 LV INDEV TYPE KEYPAD 4 3 LV INDEV TYPE ENCODER 4
  • opencv SVM

    目录 What is a SVM 官方文档的源代码 函数补充 colRange 和 rowRange RNG 随机数 rng fill 简化 多分类问题 What is a SVM A Support Vector Machine SVM
  • Pytorch使用GPU

    Pytorch使用GPU pytorch默认是不使用gpu的 即使我们已经安装好了支持的cuda版本和cudnn 所以要使用gpu需要在程序里面设置一下 步骤 import torch use gpu torch cuda is avail

随机推荐

  • promise原理:代码实现

    基础代码 function window const PENDING pending const RESOLVED resolved const REJECTED rejected function Promise excutor this
  • 什么是模式识别,对抗学习是什么?

    模式识别是什么 作为人工智能的一个重要方向 模式识别的主要任务是模拟人的感知能力 如通过视觉和听觉信息去识别理解环境 又被称为 机器感知 或 智能感知 人们在观察事物或现象的时候 常常要寻找它与其他事物或现象的不同之处 并根据一定目的把相似
  • phpcms v9文件上传漏洞复现

    1 压缩包文件无递归删除 file FILES file 检查文件是否为空文件 if file exit 请勿上传空文件 name file name dir upload ext strtolower substr strrchr nam
  • 【牛客C++入门】CPP24 字符串拼接

    描述 键盘输入两个字符串 将这两个字符串进行拼接后输出 输入描述 键盘输入两个字符串 输出描述 输出两个字符串拼接后的结果 示例1 输入 hello nihao 输出 hellonihao 分析 使用函数getline 进行字符串拼接 代码
  • Linux安装之打开BIOS虚拟化支持

    打开BIOS虚拟化支持步骤 1 首先 你需要确认的使你的计算机型号和CPU BIOS的型号 因为过老的计算机是不支持虚拟化技术的 2 那么怎么知道呢 方法很简单 开机时按F2 F12 DEL ESC等键就可以进入到BIOS 这就需要根据电脑
  • HTTP Content-Disposition Explanation [ from MDN ]

    在常规的HTTP应答中 Content Disposition 消息头指示回复的内容该以何种形式展示 是以内联的形式 即网页或者页面的一部分 还是以附件的形式下载并保存到本地 在multipart form data类型的应答消息体中 Co
  • 集合拷贝几种常用方法

    一种简单的方式是通过构造方 List
  • 内网通 文件存服务器吗,内网通的服务器地址怎么看

    内网通的服务器地址怎么看 内容精选 换一换 介绍常见的安全组配置示例 如下示例中 出方向默认全通 仅介绍入方向规则配置方法 允许外部访问指定端口不同安全组内的弹性云服务器内网互通仅允许特定IP地址远程连接弹性云服务器SSH远程连接Linux
  • 运动控制中的安全机制——限位

    一 限位 运动控制器能够通过安装限位开关或者设置软限位来限制各轴的运动范围 一旦限位开关失效 将可能造成控制设备的损坏或发生生产事故 因此限位开关的稳定性和可靠性对于各种运动和位置控制设备来讲是十分重要的 限位限制一般有三重 软限位 限位开
  • Deepin深度操作系统中编译和安装dde-file-manager

    目录 一 Deepin环境准备 二 编译源码 1 从git仓库下载源码 2 安装第三方库依赖 2 1 可以直接apt install的库 2 2 安装Qt 2 3 安装deepin其他第三方库 3 编译安装 三 测试运行 参考 Deepin
  • 单片机开发

    作者主页 编程指南针 作者简介 Java领域优质创作者 CSDN博客专家 CSDN内容合伙人 掘金特邀作者 阿里云博客专家 51CTO特邀作者 多年架构师设计经验 腾讯课堂常驻讲师 主要内容 Java项目 Python项目 前端项目 人工智
  • C# 中奇妙的函数–6. 五个序列聚合运算(Sum, Average, Min, Max,Aggregate)

    今天 我们将着眼于五个用于序列的聚合运算 很多时候当我们在对序列进行操作时 我们想要做基于这些序列执行某种汇总然后 计算结果 Enumerable 静态类的LINQ扩展方法可以做到这一点 就像之前大多数的LINQ扩展方法一样 这些是基于IE
  • 【Flutter 3-5】Flutter进阶教程——在Flutter中使用Lottie动画

    作者 弗拉德 来源 弗拉德 公众号 fulade me Lottie动画 在移动开发中总是需要展示一些动画特效 作为程序员的我们并不是很擅长用代码做动画 即便是有些动画可以实现 在跨平台的过程中也会因为API的差异性导致动画在各个平台中展示
  • VS2019企业版安装

    安装环境VMware Win7sp1 Net Framework 4 6 win7sp1update VS企业版下载地址 链接 https pan baidu com s 1ToBLr8sZJ9KbNKWG 6YREg 提取码 m9dr N
  • vue如何实现el-menu与el-tabs联动,通过点击el-menu导航中的选项动态添加el-tabs页面

    Vue如何实现el menu与el tabs联动 通过点击el menu导航中的选项动态添加tab页面 老规矩 先上效果图 达成这个效果 首先我们先了解下原理 在el menu中有一个属性router 开发文档中写的非常清晰 选择该属性后即
  • c#使用多线程的几种方式介绍

    本文主要介绍了c 使用多线程的几种方式 通过示例学习c 的多线程使用方式 大家参考使用吧 1 不需要传递参数 也不需要返回参数 ThreadStart是一个委托 这个委托的定义为void ThreadStart 没有参数与返回值 代码如下
  • Docker使用

    1 下载安装 在linux下安装docker一共有三步 更新软件包列表 sudo apt get update 安装docker sudo apt get install docker ce 检查docker是否安装成功 docker ve
  • MES管理系统项目失败的原因,总结三点

    MES是一款管理系统 建设效果参差不齐 但是MES管理系统项目以胜利的寥寥无几 因为MES管理系统 主要面向管理人员 管理人员希望打开工厂黑河 然而工厂的数据来源基本都是由执行层提供的 建设MES生产管理系统的诉求与国家统计局需求是一样的
  • Chat GPT介绍

    推荐一个在线使用网站 ChatGPT Next Web chatnext top 可以免费使用 但有次数限制 体验一下ChatGPT还是不错的 次数用完可以充钱28 8元成为永久会员 我不是打广告 我只想让更多的人体验和接触ChatGPT
  • android 难题,Android开发中遇到的难题与解决方案

    引用资源文件错误 导致运行失败 无法确定错误位置 解决方案 在Android Studio的Terminal控制台输入 gradlew compileDebugSources 获取webView的高度 public void initVie