如何获取最后滚动视图位置,scrollview

2024-01-07

我正在使用表格布局。其中有 100 个项目使其可滚动我在 ScrollView 中使用 Tablelayout。但我必须检测用户是否已滚动到最后一行。如果用户滚动到最后一个视图,则会向用户显示一条 Toast 消息。 但是如何知道用户已滚动到表格布局的最后一行。我已经引用了代码ScrollVie 内的 TableLayout http://huuah.com/using-tablelayout-on-android/w.

http://huuah.com/using-tablelayout-on-android/ http://huuah.com/using-tablelayout-on-android/


如果新的滚动 y 位置 + 滚动视图高度 >= 表视图高度,则意味着您已到达列表末尾。

要实现这一点,您必须编写自定义滚动视图。

Step-1您必须创建扩展 ScrollView 的自定义滚动视图

package com.sunil;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ScrollView;

public class LDObservableScrollView extends ScrollView {

    private LDObservableScrollViewListener scrollViewListener = null;

    public LDObservableScrollView(Context context) {
        super(context);
    }

    public LDObservableScrollView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public LDObservableScrollView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public void setScrollViewListener(LDObservableScrollViewListener scrollViewListener) {
        this.scrollViewListener = scrollViewListener;
    }

    @Override
    protected void onScrollChanged(int x, int y, int oldx, int oldy) {
        super.onScrollChanged(x, y, oldx, oldy);
        if(scrollViewListener != null) {
            scrollViewListener.onScrollChanged(this, x, y, oldx, oldy);
        }
    }

}

Step-2创建一个监听器来检测scrollchanged

包 com.sunil; 导入LDObservableScrollView;

public interface LDObservableScrollViewListener {

    void onScrollChanged(LDObservableScrollView scrollView, int x, int y, int oldx, int oldy);

}

Step-3在布局 xml 中使用自定义滚动视图而不是 ScrollView

<com.abc.LDObservableScrollView android:layout_width="fill_parent" android:layout_marginTop="1dip"
        android:id="@+id/OLF_ScrollView" android:layout_height="fill_parent" android:background="@drawable/small_list_back">
        <TableLayout android:layout_width="fill_parent" android:id="@+id/OLF_tableLayout_TableLayout" android:layout_height="fill_parent">
        </TableLayout>
    </com.abc.LDObservableScrollView>

Step-4在您的活动类或您想要检测滚动事件的位置使用以下代码

public class DetectHere implements LDObservableScrollViewListener{
...


LDObservableScrollView scrollView = (LDObservableScrollView)view.findViewById(R.id.OLF_ScrollView);
         scrollView.setScrollViewListener(this);

.....

@Override
    public void onScrollChanged(LDObservableScrollView scrollView, int x,
            int y, int oldx, int oldy) {
        // TODO Auto-generated method stub
        if((scrollView.getHeight()+y) >= tableLayout.getHeight()){
            Log.e("Custom Listener ", "END OF LIST OCCURRED ::");
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取最后滚动视图位置,scrollview 的相关文章

  • 在代码中旋转按钮(或其中的文本)

    我必须通过编码随机旋转按钮 或里面的文本 它是相同的 API级别低于11是否有button setRotate x 好吧 看了一下 答案是 很复杂 您可以使用旧的动画框架旋转按钮 例如像这样 Button button Button fin
  • BluetoothAdapter.getDefaultAdapter() 不返回 null

    这是我的第一篇文章 所以如果我做了一些愚蠢的事情 请告诉我 这个问题可能看起来与其他帖子类似 但或多或 少与我所看到的所有内容相反 关于该项目的事情 我正在开发 android 4 0 4 4 应用程序 我正在使用蓝牙 我正在运行 andr
  • Android 中的 java.util.Observable 是线程安全的吗?

    Android 中的 java util Observable 是线程安全的吗 这文档 http developer android com reference java util Observable html说只有deleteObser
  • 如何忽略 LeakCanary 中的某些类?

    有人能给我一个如何忽略 LeakCanary 中的某些类的有效示例吗 我正在查看这个示例 以忽略 LeakCanary 中第三方库中的某些类 但我不知道将其放在应用程序中的何处 我把它放在我的应用程序类中 但这些变量和方法有错误 isInA
  • Android 中有没有办法获取 SD 卡大小?

    欢迎大家 我已经在 Stackoverflow 和 google 上尝试过与此相关的每个问题 但没有一个有效 我已经尝试过类似下一个链接的操作 但它返回的内容与内部存储相同 如何获取外部存储 SD 卡的大小 带安装的 SD 卡 https
  • Android 8.1 中 Activity 自行旋转并恢复正常

    我的应用程序在所有 Android 版本上运行良好 但我注意到在 Android 8 1 0 Oreo 中 当我将屏幕从纵向活动转到横向活动时 以及当我按后退按钮时 它会显示异常行为 屏幕自动从横向旋转并恢复正常 看起来 Activity
  • Android BLE 扫描在后台几分钟后停止

    当我为公司开发新冠肺炎接触者追踪应用程序时 我在后台遇到了 Android 扫描停止问题 这是我尝试过的 添加前台服务 禁用手机中所有与电池相关的优化选项 启用后台运行的应用程序 测试设备 搭载 Android 10 的 Galaxy S2
  • 使用 mupdf android 库导航到特定页面

    我如何使用 muPDF 库导航到特定页面 或者有没有办法让图书馆不记得我最后在那个pdf文件中浏览的是哪一页 Uri uri Uri parse path Intent intent new Intent MainActivity getC
  • android 多关键词搜索

    我的应用程序包含搜索功能 它将搜索数据库内的内容 我的搜索的弱点是 我只能使用一个标签进行搜索 例如我只能搜索 猫 它会返回我的数据库中包含 猫 一词的内容 因为我正在使用LIKE在 select 语句期间进行查询 如何使用多个标签进行搜索
  • Spotify 登录错误 INVALID_CLIENT:无效的重定向 URI android

    我正在制作一个包含 Spotify 集成的应用程序 我点击了此链接https developer spotify com technologies spotify android sdk tutorial https developer s
  • 如何知道用户是否在 Android 应用程序中输入了错误的密码(锁定屏幕)

    我正在开发一个 Android 应用程序 如果用户在 Android 锁定屏幕中输入错误的密码 则必须完成其中一项活动 例如 如果用户输入错误的密码 则会发送电子邮件 我将不胜感激任何帮助 提前致谢 Kshitij 锁屏在完全沙箱环境中运行
  • 使用 UPI url 调用 PSP 应用程序

    我正在尝试创建一个商家应用程序 它将根据 NPCI 的指南生成一个 url 此 url 将作为意图共享 并且 PSP 应用程序 任何注册的银行应用程序 应该能够侦听该 url 并被调用 我已经形成了这样的网址 upi pay pa icic
  • BitmapFactory.decodeResource() 忽略 jpg 图像的 inPreferredConfig 选项

    我尝试将jpeg资源图像加载到ARGB 8888格式的位图 BitmapFactory Options opts new BitmapFactory Options opts inPreferredConfig Bitmap Config
  • 如何在 onDraw() 方法中定义与像素无关的高度

    我扩展了 View 来构建自定义小部件 我想用独立的像素单位定义小部件的高度 我认为可以通过将像素密度乘以所需的高度来完成 但我不知道该怎么做 到目前为止我所拥有的 最小化 public class Timeline extends Vie
  • 使用 RecyclerView.Adapter 在 onBindViewHolder() 内设置 onItemClickListener

    我有一个自定义对象 学生班 public class Student private String name private String age public String getName return name public void
  • 改造方法调用可能会产生“java.lang.NullPointerException”

    使用 Retrofit 2 3 0 我在 Android Studio 中收到以下消息 有关如何删除此 IDE 错误消息的任何建议 谢谢 来自Response文档 http square github io retrofit 2 x ret
  • 如何从灰度字节缓冲区图像创建位图?

    我正在尝试使用新的 Android 人脸检测移动视觉 API 来处理帧图像 所以我创建了自定义检测器来获取帧并尝试调用 getBitmap 方法 但它为空 所以我访问了帧的灰度数据 有没有办法从它或类似的图像持有者类创建位图 public
  • Application.onLowMemory() 未调用

    我创建了自己的应用程序类 我尝试调试它 代码在 Application onCreate 处停止 但不会在 onLowMemory 处停止 为了测试该场景 我打开了许多其他高内存应用程序 我看到的是调试会话终止 在 Eclipse 中 并且
  • 膨胀类 android.support.design.widget.CoordinatorLayoute 时出错

    我正在尝试运行我的应用程序 但不断收到标题中列出的错误 我读过周围的内容 人们说尝试将主题更改为 AppCombat 主题 但这似乎不起作用 以下是我遇到的错误 Process com example jmeyer27 crazytiles
  • Android Espresso - 如果未选中,请单击复选框

    I have onView withId R id check box perform click 但我只想在尚未选中该复选框时执行此操作 我怎样才能在浓缩咖啡中做到这一点 我还想根据其之前的状态来切换复选框 开关 起初 我尝试用此方法打开

随机推荐

  • 使用 Remember_me 时注销后 Flask-Login 仍然登录

    要使用 Flask login 在 Flask 中注销用户 我只需调用 logout user 但是在添加一些额外的会话检查后 在我单击注销并再次单击返回 登录页面 后 我仍然登录 它发生了只有当我选择 记住我 时 我想我在这里误解了 se
  • 本地和远程重命名 Git 分支? [复制]

    这个问题在这里已经有答案了 有没有办法在本地重命名 Git 分支并将其推送到远程分支 即使已经有很多提交推送到远程分支 或者 是否需要创建一个新的本地分支 删除旧的本地分支 然后在远程仓库上重复操作 Yes 特点move存在以在本地重命名分
  • 创建树结构

    我正在开发一个 asp net 项目 在我的 aspx 页面中 我有一个 gridview 它有 3 列 元素 目标 父级 在客户端 我想使用 gridview 中的数据构建一个树结构 然后用数字构建一个树 我找到了有关如何构建图形的信息和
  • YouTube onPlayerReady 永远不会被触发

    知道为什么这个脚本不起作用吗 我想要的只是追踪onStateChanged事件 但也从未被调用过 当我使用下面的代码打开 html 文档时 我没有错误 youtube 脚本加载得很好 播放器对象不是undefined 看起来也不错 docu
  • 基于函数的索引没有提高查询性能

    我已经创建了视图 并在该视图中添加了我需要的以下 case 语句 并且我已经为其创建了基于函数的索引 该视图有1900000条记录 当我尝试执行该视图时 需要几个小时才能运行 并且该视图的性能非常低 我不明白如何提高性能 CREATE OR
  • Java 中最大字符串不匹配数

    我最近在 codehub 上遇到了一个问题 但无法解决这个查询 谁能帮我解决这个问题吗 给定一个长度为 N 的字符串 S 您可以选择并反转 S 中任意长度的任何子字符串 您可以多次执行此操作 通过执行操作确定最大不匹配数 不匹配 S 被定义
  • 阻止 & 符号变成 Windows 窗体绑定的助记符/加速器 [重复]

    这个问题在这里已经有答案了 可能的重复 在标签控件绑定到用户填充的属性的屏幕上 我在标签上看到带下划线的字符 助记符 因为基础数据包含 符号 例如 如果绑定属性包含 A B Trucking 则标签显示为 AB Trucking 且 B 带
  • 如何从 Azure AD 获取帐户?

    我有一个很好的 Azure Active Directory 设置有十几个用户 都是我 所以我有一个租户 ID 客户端 ID 和客户端密钥 我还在开发一个简单的控制台应用程序 它将充当该目录的公共客户端 该客户端还保存用户名和密码列表 因为
  • 在从类构造函数调用的方法中初始化最终变量[重复]

    这个问题在这里已经有答案了 今天我遇到了一种奇怪的行为 我不明白为什么 想象一下 我们在 Java 的一个典型类中有一个 Final 变量 我们可以立即初始化它或在类构造函数中初始化它 如下所示 public class MyClass p
  • indexOfObjectsPassingTest 或filteredArrayUsingPredicate 哪个性能更快?

    当需要过滤 NSArray 以获取返回数组中的项目子集时 哪种方法更快更频繁且在边缘情况下 以下测试 Release模式下编译 在Mac Pro上执行 indicate that filteredArrayUsingPredicate慢于i
  • xcode 中的文件夹结构与 finder 中的文件夹结构

    我在 xcode 中有一个项目的以下文件夹结构 但是 我在Finder中有上述文件结构 有没有办法将文件结构从 xcode 反映到 finder 我最近发现了一个命令行工具这将完全满足您的需要 你可以在这里找到它 https github
  • 将单击的按钮的值从一个页面传递到另一页面 输入字段

    这个问题问得很奇怪 兜圈子 我有 2 页 第 1 页 上面有一个按钮 喜欢
  • 使用 Mockito 2 模拟服务会导致存根错误

    我尝试使用 Mockito 模拟类的行为 这使用 Mockito 1 x 有效 迁移到 JUnit 5 和 Mockito 2 似乎不再起作用了 ExtendWith MockitoExtension class public class
  • 为地图中的多边形着色,以便相邻多边形具有不同的颜色

    我制作了以下地图 library sf library leaflet library leafgl library colourvalues library leaflet extras nc lt st read system file
  • runMain 中的 sbt 非法动态引用

    我正在尝试运行代码生成器 并向其传递文件名以写入输出 resourceGenerators in proj Compile Def task val file resourceManaged in proj Compile value sw
  • 查明 Objective-C 类是否重写了方法 [重复]

    这个问题在这里已经有答案了 如何在运行时确定一个类是否重写了其超类的方法 例如 我想知道一个类是否有它自己的实现isEqual or hash 而不是依赖超类 您只需要获取方法列表 然后查找您想要的方法 import
  • 在 Flash 模式下寻找超出缓冲线的视频

    网络服务器模块ngx http mp4 module or mod h264 streaming允许 Flash 客户端使用 start 参数寻找超出下载缓冲区线的视频 例如 http server com path to video mp
  • 实体,处理大量记录(> 3500 万条)

    我们有一组相当大的相关表 每个表有超过 3500 万条相关记录 我需要创建几个 WCF 方法 它们使用一些参数 数据范围 类型代码等 查询数据库并返回相关结果集 从 10 到 10 000 条记录 该公司采用 EF 4 0 进行标准化 但对
  • 从 MS Access 2007 中删除 autoexec 宏

    我在 MS Access 2007 中创建了一个 autoexec 宏 但找不到它 我知道它在那里 因为它正在运行 但我找不到它来删除或修改 我可以看到我创建的其他宏 但没有看到自动执行宏 有人可以指出我正确的方向以找到它所在的位置 干杯
  • 如何获取最后滚动视图位置,scrollview

    我正在使用表格布局 其中有 100 个项目使其可滚动我在 ScrollView 中使用 Tablelayout 但我必须检测用户是否已滚动到最后一行 如果用户滚动到最后一个视图 则会向用户显示一条 Toast 消息 但是如何知道用户已滚动到