ListView 滚动 - 一项一项

2024-03-08

我有一个必须一次显示 4 个项目的 ListView。我必须一项一项地滚动。

用户滚动 ListView 后,我必须重新调整滚动以适合 4 个项目。我的意思是,我无法将某个项目显示一半。

还有一个问题,有没有办法获取当前ListView的scrollY偏移量?因为listView.getScrollY()方法是来自View,而不是ListView内部的Scroller对象。


我找到了一个很好的解决方案。它非常适合我。 也许我的回答会对某人有所帮助。

class ScrollListener implements AbsListView.OnScrollListener{
        boolean aligned;

        @Override
        public void onScrollStateChanged(AbsListView absListView, int state) {
            if (state == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) {
                aligned = false;
            }
            if (state == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
                if (!aligned) {
                    if (Math.abs(absListView.getChildAt(0).getY()) < Math.abs(absListView.getChildAt(1).getY())) {
                        listView.smoothScrollToPosition(absListView.getFirstVisiblePosition());
                    } else {
                        listView.smoothScrollToPosition(absListView.getLastVisiblePosition());
                    }
                }
                aligned = true;
            }
        }

        @Override
        public void onScroll(AbsListView absListView, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
        }
    }

我必须说,在我的情况下,我有两个可见的项目,所以如果你有 4 个,你应该使用索引("getChildAt(0)" and "getChildAt(1)")。 祝你好运!

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

ListView 滚动 - 一项一项 的相关文章

  • 如何以编程方式判断蓝牙设备是否已连接?

    我了解如何获取已配对设备的列表 但如何判断它们是否已连接 这一定是可能的 因为我看到它们列在我手机的蓝牙设备列表中 并且它说明了它们的连接状态 将蓝牙权限添加到您的AndroidManifest中
  • 如何使用具有三种布局的视图翻转器?

    我目前正在使用ViewFlipper我的主要活动有两种不同的布局 我想使用第三种布局 但我只能找到showNext and showPrevious 命令 有人可以告诉我如何使用来实现第三种布局吗ViewFlipper 为您制作了一个示例
  • 升级到 Proguard 4.8 后无法导出应用程序

    我刚刚将我的 Android SDK ADT 和 Proguard 升级到最新最好的版本 我的项目在调试模式下编译并运行良好 但是当我尝试导出它的签名版本 APK 时 我收到来自导出向导的错误Eclipse 控制台上没有任何错误日志消息 如
  • 与通用地图相比,MapView 的分辨率较差

    我刚刚收到 HTC Desire 进行测试 我注意到 残留在小于整个屏幕的框架中的地图视图不如通用地图应用程序那么清晰 有什么办法解决这个问题吗 您应该使用 API 级别 4 或更高级别编译应用程序 然后在 AndroidManifest
  • Android 中图像字节表示的每像素字节数

    我目前正在编写一个Android应用程序 需要在其中使用OCR 为了实现这一点 我将 Tesseract 与tesseract android tools 项目 http code google com p tesseract androi
  • 突出显示列表视图项目

    我需要在触摸列表视图项目时突出显示它并保持突出显示状态 我尝试了我发现的一切 但没有任何效果 这是我的代码 这是列表视图
  • 构建应用程序时出现 BufferOverflowException

    每次我想运行我的 Android 应用程序时 我都会收到错误 2013 11 02 13 05 36 Dex Loader Unable to execute dex java nio BufferOverflowException Che
  • Android 游戏偶尔出现延迟

    我正在用 Java 制作一个简单的 Android 游戏 我注意到每 20 40 秒就会出现一些烦人的延迟 首先 我认为它们是由垃圾收集器引起的 但当我检查 LogCat 时 我发现游戏滞后时没有垃圾收集 每当游戏开始滞后时 我都会标记日志
  • Android Studio APK META-INF/BCKEY.DSA 中复制的重复文件

    我的代码构建得很好 但是当我尝试在调试中运行它时 出现以下错误 Error Execution failed for task app transformResourcesWithMergeJavaResForDebug com andro
  • 检测设备方向

    我需要检测 Android 设备方向变化 而无需手动处理传感器数据 同时保持活动方向坚持某个方向 onConfigurationChange不会起作用 因为会让我的活动不旋转 通过使用传感器数据来检测方向变化 我认为这是轮子的发明 因为 A
  • 片段活动中的 commitAllowingStateLoss()

    我的应用程序使用片段活动 它仅处于纵向模式 无法旋转屏幕 最初我使用的是commit 方法 但现在我计划不加区别地将这些更改为commitAllowingStateLoss 对于碎片活动 是否有任何理由不不加区别地执行此操作而不重新评估我使
  • Android 5 Lollipop 阴影方向或 y 偏移

    是否有可能改变 Y 偏移的阴影方向 现在我有以下布局
  • 使用 twitter API 1.1 在 Android 应用程序中显示 twitter feed

    基本上我想展示这个提要 https en twitter com epl live https en twitter com epl live在我的应用程序中 由于 twitter 更改了其 api 1 1 每个调用都必须经过授权 我发现的
  • DialogFragment 关闭事件

    我需要处理 DialogFragment 的结尾 在调用 dismiss 之后 例如 我会在关闭后 包含 片段的活动内显示一个 toast 我该如何处理该事件 覆盖onDismiss 在你的DialogFragment中 或者使用setOn
  • android - 如何让按钮每次按下时单击播放声音文件?

    我打开了一个新项目 现在我想做的是 通过按下按钮 我想要播放一个 mp3 文件 而且每次按下按钮时 声音文件都会再次从头开始播放 所以假设 mp3 长 10 秒 我按下按钮 它正在播放 4 秒后我再次按下按钮 声音将再次播放 现在我想知道的
  • onStart() 到底做了什么? - 安卓[重复]

    这个问题在这里已经有答案了 一段时间以来 我一直想知道 onStart 函数在 android 生命周期中的确切作用 网上的大多数资源只是说 它在您的活动在屏幕上可见之前被调用 但到目前为止我所做的应用程序我从未使用过onStart 我在
  • 在 VideoView 开始播放之前,TextView 不会显示

    我编写了一个android应用程序 它有两个视图 TextView上方的VideoView 位于ScrollView内部 我遇到了一个问题 直到VideoView开始播放视频 TextView才显示 并且我有一个黑屏 这可能需要很长一段时间
  • Android:我的应用程序太大并给出“无法执行 dex:方法 ID 不在 [0, 0xffff]: 65536”?

    我正在尝试将我的应用程序与 Box Dropbox 和 Google Drive 集成 所有这 3 项服务都需要许多第 3 方 jar 此外 我的应用程序已经需要一些第三方 jar 现在 当我尝试从 Eclipse 运行我的应用程序时 出现
  • Retrofit 2.0:预期为 BEGIN_OBJECT,但在第 1 行第 1 列路径 $ [重复] 处为 STRING

    这个问题在这里已经有答案了 我在邮递员上传递了更新用户请求并获得了成功的响应 参见图片 现在当我尝试使用 Retrofit 2 在我的应用程序中执行相同操作时 出现错误 com google gson JsonSyntaxException
  • FCM(Firebase Cloud Messaging)如何发送到所有手机?

    我创建了一个小型应用程序 能够从 FCM 控制台接收推送通知 我现在想做的是向所有使用 API 安装应用程序的 Android 手机发送推送通知 这就是我完全迷失的地方 有没有办法在不收集所有注册ID的情况下将其发送到所有手机 这是否仅适用

随机推荐

  • 将 Java 对象转换为 Json,反之亦然?

    我知道 JSON 对象只不过是String 我的问题是我有一个对象映射 我想将其转换为 Json 格式 例子 Java Class gt Class Person private String name private String pas
  • “覆盖”子类中共享成员的方法

    目前我正在尝试在 vb net 中创建一种模型 可用于创建 获取数据库条目 我创建了一个带有共享函数的主类模型来获取数据集 例如模型 find 现在我想创建继承主模型类的类 例如为用户提供单独的一个 UserModel find gt SE
  • 如何停止 js 插件在页面加载时运行。我只想修复 Ajax 请求

    我在用着jquery 节奏插件 https github com HubSpot pace使用进度条主题 一切正常 但我想仅在 ajax 请求时修复此运行 经过大量搜索后 我决定在那里发帖 希望有人能提供解决方案 目前它在 Ajax 和页面
  • 如何以编程方式动态管理 iptables 规则?

    我需要查询现有规则 以及能够轻松添加和删除规则 我还没有找到任何 API 来执行此操作 我缺少什么吗 我最接近的解决方案是使用iptables save iptables xml用于查询并手动调用 iptables 命令本身来添加 删除规则
  • Google Compute Engine - 使用启动脚本启动 tmux

    我试图在启动过程中使用元数据键 startup script 启动 tmux 我正在尝试执行tmux new session d s toto在启动期间 但是当我执行tmux ls之后我没有看到任何 tmux 会话 我在这里缺少什么 您可能
  • 如何在 Keras 中故意过度拟合卷积神经网络以确保模型正常工作?

    我正在尝试诊断训练模型时导致精度低的原因 此时 我只想能够获得高训练精度 我可以稍后担心测试精度 过度拟合问题 如何调整模型以提高训练准确性 我想这样做是为了确保我在预处理步骤 洗牌 分割 标准化等 中没有犯任何错误 PARAMS drop
  • 如何相对于导致更改的点击事件对 ng-repeat 项目进行动画处理

    我正在尝试让用户从不同的项目集中选择项目 该项目应从单击的设置动画到所选项目列表中的新位置 在下面的演示中 将粉色框视为可用项目 将边框框视为所选项目列表 蓝色框 用户可以通过单击任一粉红色框来选择项目 angular module tes
  • 将 mysql 表转储到 CSV(stdout),然后将输出通过隧道传输到另一台服务器

    我正在尝试将数据库表移动到另一台服务器 复杂的是当前运行该表的机器几乎没有剩余空间 所以我正在寻找一个可以通过网络工作的解决方案 我尝试过从 src 机器上 mysqldumping 数据库并将其通过管道传输到目标 mysql 中 但我的数
  • 如何从 pytesseract 获得最佳结果?

    我正在尝试使用 OpenCV 和 Pytesseract 从图像中读取文本 但结果不佳 我有兴趣阅读文本的图像是 https www lubecreostorepratolapeligna it gb img logo png https
  • WPF 可编辑组合框验证

    我想要完成的是能够验证输入到可编辑组合框的新类别或从现有组合框的类别列表中选择一个类别 验证仅适用于 selectedItem 不适用于输入到 Text 的新文本 一旦我添加ValidateOnDataErrors True 对于 Comb
  • Visual Studio:立即窗口中的 IntelliSense 在哪里?

    看起来 立即 窗口需要一些像 IntelliSense 一样的活力 有人同意 不同意吗 这会在 VS2008 2010 中出现吗 如果您没有自动出现智能感知 请立即按 Ctrl 空格键 和乔尔一样 智能感知似乎是从封闭的窗口中进来的
  • 如何使用 scipy 和 lfilter 进行实时过滤?

    免责声明 我可能不太擅长 DSP 因此在使该代码正常工作时遇到的问题比我应有的要多 我需要在传入信号发生时对其进行过滤 我试图让这段代码工作 但到目前为止我还无法做到 参考文献scipy signal lfilter 文档 https do
  • 为什么 Msxml DocumentElement/SelectSingleNode 不返回任何内容?

    DocumentElement 属性和 SelectSingleNode 继续不返回任何内容 我已经验证 xml 加载正确 问题似乎出在 xml 解析器中 xml 没有任何命名空间 因此不需要设置 Private Function Pars
  • 使用 IntlDateFormatter 格式化 PHP 日期

    我注意到 当用 PHP 格式化日期时IntlDateFormatter http php net manual en class intldateformatter php根据语言的不同 结果可能会有很大不同 例子 formatter ne
  • 不同窗口大小的滚动总和

    我正在寻找随着窗口大小变化计算滚动总和的最快方法 我使用下面的代码 但是对于长度为 1M 的向量来说 它太慢了 Thanks set seed 1 n 10L x runif n window pmin sample 1 10 n TRUE
  • Twbs分页无法加载数据表中的新页面数据

    您好 我正在处理分页 发现当我单击第二页时无法从 twbs 插件加载数据 事实上 该方法是从 ajax 调用中调用的 但数据表数据仍然相同 有人可以告诉我该怎么做才能用服务器上的新数据填充表格 查看 thymeleaf 和 spring b
  • 更新的运行状况检查是否会导致 App Engine 部署失败?

    我们将谷歌应用程序引擎运行状况检查从旧版本更新为新版本 现在我们的部署失败了 该项目的其他内容没有改变 我们测试了默认设置 然后进行了扩展检查以防万一 这是错误 ERROR gcloud app deploy Error Response
  • Firebase 存储 getMetadata() 问题

    我一直在尝试从 Firebase Storage 获取图像文件的元数据 md5hash 并检查它是否与用户手机上图像文件的 md5hash 不相等 问题是 即使哈希值相同 我得到的结果也是不同的 这是我试图获取元数据并进行比较的代码 for
  • 测试所有对象是否具有相同的成员值

    我有一个简单的课程python questions tagged python class simple object def init self theType someNum self theType theType self some
  • ListView 滚动 - 一项一项

    我有一个必须一次显示 4 个项目的 ListView 我必须一项一项地滚动 用户滚动 ListView 后 我必须重新调整滚动以适合 4 个项目 我的意思是 我无法将某个项目显示一半 还有一个问题 有没有办法获取当前ListView的scr