如何在修改后更新 Android 视图?

2024-01-26

我的视图中有一些方法可以修改调用时绘制的一些形状。在 Java 中,为了确保组件已更新,我会调用repaint()。有什么可以确保我的视图正确更新吗?

我曾在某处读到过这样的呼唤invalidate() in the onDraw()方法将使事情保持最新,因此我不需要类似的东西repaint()在我的方法中修改绘制的形状。

这是正确的吗,还是我还需要做其他事情?

EDIT

添加一个示例,我在我的视图中调用的方法是:

public void setLineThickness(int thickness) {
    aLineThickness = thickness;

    if(aLineThicness > 1)
        //repaint();      - Okay in Java but not in Android

}

Calling 无效() http://developer.android.com/reference/android/view/View.html#invalidate%28%29会告诉视图它需要在将来的某个时候重绘自己(调用 onDraw)。因此,如果您更改视图中的某些内容(例如线条粗细),请在其后调用 invalidate() 。这样您就知道您的视图最终会更新。

所有绘图代码都应该在 onDraw() 中实现,而其他方法应该只更改视图的状态,然后在调用 invalidate() 后使用该状态来绘制视图。

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

如何在修改后更新 Android 视图? 的相关文章

随机推荐

  • 如何显示搜索视图最近的搜索历史记录

    我尝试使用以下方式但无法显示最近的搜索历史记录 在 ActionBar 上的 SearchView 中创建 历史记录 https stackoverflow com questions 19166537 create history to
  • Java 中的 LDAP 如何针对此 LDAP 进行搜索/身份验证

    我正在使用 LDAP 和 Java 搜索 这是我的 LDIF 导出 组织简单 version 1 dn dc example dc com objectClass organization objectClass dcObject obje
  • 从 C# 访问 Ironpython 字典

    我在 Ironpython 脚本中定义了字典 我想从我的 C 访问该字典 代码 有人可以提供示例代码来实现我的要求 抱歉 之前我没有用代码提及我的问题陈述 import clr clr AddReference System Core im
  • JavaScript 中的重入

    我想提高对可重入这个词的理解 这个函数是可重入的吗 function foo yield 1 yield 2 和这个 function foo return 1 和这个 var x 0 function foo return x 和这个 f
  • 文件写入 - PrintStream 附加

    我试图将一些信息附加到文本文件中 但该文件仅显示最后写入的元素 有许多Engineers 但它仅将读取的最后一个元素打印到文件中 例如 Engineer e new Engineer firstName surName weeklySal
  • 使用多平台模拟 kotlin 中的常见测试

    我无法将通用模拟库 mockk io 与 kotlin 多平台一起使用 在他们的网站上 它说要在 kotlin 多平台中使用 mockk 你只需要将这一行添加到你的 gradle 中 testImplementation io mockk
  • 快速创建和播放声音

    所以我想做的是在 swift 中创建并播放一个声音 当我按下按钮时就会播放 我知道如何在 Objective C 中做到这一点 但是有人知道如何在 Swift 中做到吗 对于 Objective C 来说是这样的 NSURL soundUR
  • 远程服务,旋转时泄漏活动

    我在远程服务中遇到回调问题 注册回调轮换后会导致活动泄漏 你能给我一些建议吗 我做错了什么 IRemoteApi aidl import com example remoteservice IRemoteListener interface
  • Visual Studio 部署项目 - 创建已部署可执行文件的快捷方式

    我意识到可能有一种简单的方法可以做到这一点 但是如何为使用 Visual Studio 部署项目构建的 MSI 部署的可执行文件创建桌面快捷方式 我想我需要使用文件系统编辑器 但是当我在用户桌面上创建快捷方式时 我无法定位可执行文件 我只能
  • 带有彩色海洋的极地立体投影中的 Geopandas 世界地图

    对此添加进一步的要求question https stackoverflow com questions 55646598 polar stereographic projection of geopandas world map 我还需要
  • 解析 XML 并填充到列表框中

    我是 C 新手 我要发展C List box in Windows Form 我发现this http dotnetperls com listbox链接会有帮助 但列表框的输入将是以下格式的 XML
  • AWS S3 读取是否保证返回新创建的对象?

    我一直在阅读有关 AWS S3 的写后读一致性的文档 但我仍然不确定这一点 如果我向 S3 写入一个对象 并在从写入操作获得成功响应后 我立即地尝试读取它 读取操作是否保证返回该对象 换句话说 有没有可能因为找不到对象而导致读操作失败 因为
  • FatFree 路由在生产中不起作用

    我有一个具有许多路由路径的应用程序 如下所示 F3 route GET Main gt get front page F3 route GET login check for login Login gt check for login 第
  • Python 发行版有哪些用例?

    我正在为我正在编写的 Python 包开发一个发行版 以便我可以发布 它在 PyPI 上 这是我第一次使用 distutils setuptools distribute pip setup py 等等 我在学习曲线上有点挣扎 这比我预期的
  • 将 php 表单中的发件人电子邮件地址更改为收件人

    我正在尝试创建一个简单的 php 电子邮件表单 将提交的内容发送到指定的地址 但我试图解决的问题是电子邮件发送的地址 目前 它发送自 电子邮件受保护 cdn cgi l email protection 但我希望能够将其更改为简单的 电子邮
  • 为什么 GETDATE() 是无效标识符

    当我调试此代码时 为什么 Oracle Sql Developer 工具显示 GETDATE 是无效标识符 CREATE OR REPLACE TRIGGER SPName AFTER UPDATE ON TableName FOR EAC
  • Firebase querySnapshot 未根据 where 条件实时更新

    我使用带有 flutter 的 cloud firestore 来存储聊天内容 并使用 where 条件来获取聊天内容 文档正确返回 但添加新数据时聊天列表不会实时更新 聊天记录如何存储 collection gt message mess
  • 无法导入数据类模块

    今天我从 apt get 安装了 python 3 7 来尝试新的 dataclasses 模块 我单独安装了它 因为 python3 6 无法升级到 3 7 当我输入 python3 7 version 它给了我 gt gt gt Pyt
  • 代理和 fetchMore()/canFetchMore() 背后的 Qt 模型

    我很想知道当具有增量数据获取的主数据模型位于代理或代理链后面时 视图将如何表现 代理如何进行项目重新排列 例如取消分组代理 示例 http lynxline com jongling qt models http lynxline com
  • 如何在修改后更新 Android 视图?

    我的视图中有一些方法可以修改调用时绘制的一些形状 在 Java 中 为了确保组件已更新 我会调用repaint 有什么可以确保我的视图正确更新吗 我曾在某处读到过这样的呼唤invalidate in the onDraw 方法将使事情保持最