如何更新 GridView / ListView 的每个元素上的 ProgressBar 状态?

2024-04-07

目前我有一个 GridView,每个元素都应该有一个单独的 ProgressBar。这些元素代表单独的下载,我想使用这些进度条显示下载的状态。

但我应该如何更新它们呢?我的问题是,根据文档(以及我在 Google IO 视频中听到的内容),更新 AdapterViews 中元素的唯一方法是更新分配的适配器,并在每次更新后调用 .notifyDatasetChanged() 。

当然,这在这种情况下也确实有效,但更新非常频繁(5-10 秒更新)。以此频率调用 .notifyDatasetChanged 会中断与 GridView 的任何交互。例如。用户尝试长按网格中的某个项目,但单击事件停止,因为调用了 .notifyDatasetChanged 来更新下载进度。

还有其他方法可以做到这一点吗?我应该放弃 AdapterViews 并使用其他东西吗?


对于像您这样频繁更新(每秒多次)的情况,notifyDatasetChanged 不是正确的方法 - 您需要直接更新各个视图。

如果没有看到您的代码以及文件下载和 GridView 中的条目之间的关系,很难准确说出您需要什么调用,但是:

-GridView 有一个“getChildAt”,您可以使用它来获取特定索引处的视图。
- 如果视图甚至不可见,则更新视图是没有意义的。如果它不在 getFirstVisiblePosition() 和 getLastVisiblePosition() 之间,请忽略它,每当重绘时都会使用更新的数据进行绘制。

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

如何更新 GridView / ListView 的每个元素上的 ProgressBar 状态? 的相关文章

  • Android Paint:如何获得“喷枪”效果?

    我正在关注 API 演示中的 FingerPaint 演示 我需要获得 喷枪 效果 从某种意义上说 当我在同一个点上绘制时 它会变得越来越暗 请看图片 正如你所看到的 中心更暗 因为我不止一次在同一个地方涂上油漆 请问 如果绘制多次 如何获
  • Android 滚动分页

    Android 操作系统有可以实现滚动分页的功能吗 Edit滚动分页是指像主屏幕上一样的分页 您可以左右滑动并转到下一页或上一页 您可以在 android git kernel org 上查看 Launcher 的源代码作为示例 查找名为
  • android 网格视图从右到左放置项目

    我正在开发一个 Android 应用程序阿拉伯文版本 在其中一个界面中 我有 gridView 因此 要以正确的顺序显示项目 我必须从右到左显示 GridView 中的项目 当然是从上到下 为此 我尝试在 GridView 中添加这些属性
  • android中.so文件的实际用途是什么? [复制]

    这个问题在这里已经有答案了 我想在我的应用程序中实现类似聊天的环聊 我一直在使用 opentok 库 我在其中看到了 libopentok so 文件 谁能告诉我 libopentok so 文件的确切用法是什么 在Android中 我们可
  • android 中 y + 高度必须 <= bitmap.height()

    我想从另一个创建位图 但每次尝试都会崩溃 这是错误消息 java lang IllegalArgumentException y 高度必须 这是我尝试创作的地方 public void saveBitmap Bitmap bitmapToS
  • 如何将库项目添加到 Android Studio?

    如何添加库项目 例如 Sherlock ABS 到安卓工作室 https en wikipedia org wiki Android Studio 不是针对旧的基于 Eclipse 的 ADT 捆绑包 而是针对新的 ADT安卓工作室 htt
  • Android Studio,工具提示消失得这么快

    我有以下问题 我想从这个工具提示中复制错误文本 但是一旦我将鼠标悬停在它上面 它就消失得如此之快 这让我发疯 我有以下 android studio 版本 我有以下设置 谢谢您的帮助 如果有人遇到这个问题 这与logcat刷新的方式有关 每
  • 没有 GUI 的 Android Activity

    我创建了一个仅从链接启动的活动 使用意图过滤器 我不希望此活动有 GUI 我只希望它启动服务并在栏中放置通知 我尝试将链接的意图过滤器放入我的服务中 但这不起作用 有没有更好的方法可以响应意图过滤器 或者我可以让我的活动没有 GUI 吗 抱
  • Gradle 构建无法解析生成的类

    我刚刚将 Android Studio 从 1 5 更新到 2 2 1 Gradle 也是如此 我有一个项目 它使用注释处理器框架 由我制作 来执行类似 Dagger 的依赖注入 这在更新之前工作得很好 但现在 Gradle 无法解析生成的
  • Eclipse Oxygen - 该项目未构建,因为其构建路径不完整

    我刚刚安装了 Eclipse Oxygen 并尝试在工作台中打开现有项目 但收到此错误 该项目未构建 因为其构建路径不完整 不能 找到 java lang Object 的类文件 修复构建路径然后尝试 建设这个项目 我尝试右键单击该项目 转
  • 防止滚动时自定义 ListView 刷新。我想停止刷新

    我在我的 Android 应用程序中使用自定义 ListView 问题是当我滚动 ListView 时 它会自动清除从 EditText Edittext 作为 list item 输入的数据 并且 ListView 刷新 我想阻止它停止清
  • 在 Android 模拟器中获取互联网连接

    我有一台带有wifi连接的台式电脑 我的IP地址是192 168 12 95 网关是192 168 10 10 但是我在android模拟器中没有获得互联网连接 也就是说我无法访问internate 我也尝试过 emulator avd w
  • Android 对 Runtime.getRuntime().exec() 的权限

    我有一个应用程序在清单上具有以下权限 我的应用程序在 Android JB 4 1 2 上运行 UPDATE 我尝试在 JB 上运行该应用程序 但它不起作用 它适用于早期的 API 版本
  • Android jUnit 测试 java.lang.NoClassDefFoundError: android/database/sqlite/SQLiteOpenHelper

    我正在尝试运行一个模拟子类的单元测试SQLiteOpenHelper但我收到以下错误 java lang NoClassDefFoundError android database sqlite SQLiteOpenHelper at ja
  • 如何运行传递给模拟方法的 lambda 函数?

    我想知道是否可以运行作为参数传递给模拟函数的 lambda 函数 并在调用模拟方法时运行它 我正在使用 Mockk 我想象代码是这样的 class DataManager fun submit lambda Int gt Unit val
  • 如何使 Edittext 大小保持不变?安卓

    我知道使 Edittext 左侧的文本 消失 以保持单行的属性 singleLine true 但我的问题是 当我在显示视图之前填充编辑文本时 在这种情况下 我的编辑文本都超出了屏幕 有任何想法吗 谢谢 这是填充空的 Edittext 时得
  • 如何找出每个包含的库的最低 api 级别

    我的项目中包含了很多库 Android Studio 2 0 Preview 4 我想找出它们每个的最低 Android SDK 级别 是否可以不用谷歌搜索每个图书馆的信息 如果您有源形式的库 例如 作为项目中的库模块 请查看其清单 如果您
  • 对于双核手机,availableProcessors() 返回 1

    我最近购买了一部 Moto Atrix 2 手机 当我尝试查看手机中的处理器规格时 Runtime getRuntime availableProcessors 返回 1 proc cpuinfo 也仅包含有关处理器 0 的信息 出于好奇
  • 如何在顶部工具栏的购物车图标上添加商品编号?安卓

    I saw some apps made it So I am intersting at how to do it I believe there must be some trick way to do it Example 我在菜单文
  • Android:防止嗅探(例如使用 CharlesProxy)SSL 流量

    我使用 Charles 检查将我的应用程序发送到 HTTPS 的数据 我在手机上安装了 Charles CA 证书 因此我能够解密每个 SSL 流量 但我发现一些应用程序无法看到 SSL 流量 我如何将这种行为实现到我自己的应用程序中 有了

随机推荐

  • 来自 androidx.core:core:1.0.0 和 com.android.support:support-compat:26.1.0 的重复类

    这是我的build gradle buildscript repositories maven url https maven fabric io public dependencies classpath io fabric tools
  • 使用 navigator.clipboard.writetext 复制到剪贴板在 android WebView 中不起作用

    我有一个简单的 android WebView 应用程序 它使用以下代码显示一个具有 复制 按钮的网站 navigator clipboard writeText Text to be copied then gt console log
  • 如何 git 添加整个文件夹

    我是 git 新手 我正在尝试 git add 我的整个工作目录 但收到错误消息 fatal pathspec 文件夹 与任何文件都不匹配 当我执行此命令时 我位于工作目录中 我做错了什么 另外 提交整个文件夹而不是逐个文件提交是个好习惯吗
  • Keras 与 GPU 上的 Tensorflow 后端。 MKL 错误:进入 DLASCL 时参数 4 不正确

    我使用以下命令将具有 GPU 支持的 Tensorflow 和 Keras 安装到 Anaconda v1 6 5 的环境中 conda install n EnvName tensorflow gpu conda install n En
  • 如何将JMX与Spring集成?

    我有关于 JMX 的简单课程 HelloMBean 接口 public interface HelloMBean public void sayHello public String getName public void setName
  • tkinter 和 time.sleep

    我试图在等待 5 秒后删除文本框中的文本 但程序不会运行 并且会休眠其他所有内容 还有一种方法可以让我的文本框休眠 这样我就可以在文本冻结时运行其他代码 from time import time sleep from Tkinter im
  • 了解何时以及如何使用 Require.JS

    我刚刚开始使用 Require JS 并且不太清楚应该使用它的适当情况 以及在这些情况下使用它的正确方法 以下是我目前使用 Require JS 进行设置的方式 我有两个功能 functionA and functionB 这两个功能都需要
  • 如何创建包含下拉列表的 HTML 对话框?

    我想在特定类别下记录用户输入 为此 我希望用户从下拉列表中选择一个类别 并且还有另一个可以输入文本的文本单元格 我的目标是用特定条件填充下拉列表 然后将用户选择和附加文本字符串记录到变量中 然后将其写入电子表格中 编辑 我已经能够创建下拉列
  • C# .NET 3.5 GUI设计[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一些 C GUI 设计的编程指南 我来自 Java 阵营 在那里我可以愉快地手工编写 Swi
  • winforms 事件中未保留同步上下文

    我有以下 winforms 事件 public MainForm InitializeComponent new Form ShowDialog This causes the problem private async void Main
  • 在swift ios中多线程并行执行多个任务

    我知道队列的创建并且能够执行单个任务 但如何并行执行多个任务 并发队列 gt let concurrentQueue DispatchQueue label com some concurrentQueue attributes concu
  • 配置 Microsoft Application Insights 以监视 Windows 服务

    是否可以配置微软的应用洞察 http msdn microsoft com en us library dn481095 aspx监控 Windows 服务 我有一个在 Azure 中运行的 VM 其中托管了 Web 服务 我需要安装哪个版
  • 在 fxml 文件之间切换

    我在 swing 组件内使用 jfxPanel 创建了一个应用程序 我面临的问题是我无法更改 fxml 文件 当单击 fxml 的按钮时 我想处理该 fxml 并在那里加载另一个 fxml 文件 这就是我到目前为止所做的 public cl
  • Objective-C 类前缀 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 您对命名 ObjC 类有何偏好 我有点不确定对此最合理的方法是什么 所以很高兴听到一些其他意见 Apple 建议为 cocoa 类添加前缀 因为
  • 在 jQuery 中,如何使用元素选中和取消选中所有复选框? [复制]

    这个问题在这里已经有答案了 我有以下代码 它使用通常位于复选框顶部的 LABEL 元素检查页面上的所有复选框 现在如何使用相同的 LABEL 元素取消选中所有框 jQuery document ready function var chec
  • Kibana4 监听端口 80 而不是端口 5601

    我在运行 RHEL7 的 Amazo EC2 实例上运行 elasticsearch 1 4 和 kibana4 Kibana4 作为独立进程运行 未部署在 nginx 等 Web 容器中 它正在侦听端口 5601 默认端口 我想让 kib
  • Android - 加载图像Url并在ImageView中显示

    我有这段代码来加载图像 服务器是安全的 我得到的答复是 200 这意味着可以 然后还要加载正确的网址 问题是当我运行我的应用程序时 图像不会被加载 try Bitmap bitmap null URL imageUrl new URL ur
  • C++ - 生成随机位集的有效方法,具有可配置的平均“1 与 0”比率

    我正在寻找一种高效的方法来生成随机数std bitset设定长度 我还希望能够影响1s 出现在结果中 因此如果概率值设置得足够低 则所有结果中只有一小部分会包含1 但仍然有可能 但不太可能 导致所有1s 它将用于计算量很大的应用程序 因此欢
  • 动态调用函数 - Python

    我有一个功能列表 例如 def filter bunnies pets def filter turtles pets def filter narwhals pets 有没有办法通过使用代表其名称的字符串来调用这些函数 e g filte
  • 如何更新 GridView / ListView 的每个元素上的 ProgressBar 状态?

    目前我有一个 GridView 每个元素都应该有一个单独的 ProgressBar 这些元素代表单独的下载 我想使用这些进度条显示下载的状态 但我应该如何更新它们呢 我的问题是 根据文档 以及我在 Google IO 视频中听到的内容 更新