Android 长按滚动

2023-12-08

我想将长按与滚动“连接”,这样用户就不必释放屏幕并开始滚动。

我已经实现了手势检测器...

final GestureDetector gestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener() {
    public void onLongPress(MotionEvent e) {
        // action 1
    }

    public boolean onScroll(MotionEvent event1, MotionEvent event2, float velocityX, float velocityY) {
        // action 2
    }       
}

public boolean onTouchEvent(MotionEvent event) {
    return gestureDetector.onTouchEvent(event);
}    

但现在在操作 1 和操作 2 之间,用户必须释放屏幕...我如何在不释放屏幕的情况下连接这些操作?


我不认为GestureDetector会做你想做的事,更有可能的是你必须自己做。我不知道你当前的设置,下面是一个带有OnToucListener绑在一个ScrollView这将考虑这两个事件:

public class ScrollTouchTest extends Activity {

    private final int LONG_PRESS_TIMEOUT = ViewConfiguration
            .getLongPressTimeout();
    private Handler mHandler = new Handler();
    private boolean mIsLongPress = false;
    private Runnable longPress = new Runnable() {

        @Override
        public void run() {         
            if (mIsLongPress) {             
                actionOne();
                mIsLongPress = false;
            }
        }

    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.views_scrolltouchtest);
        findViewById(R.id.scrollView1).setOnTouchListener(
                new OnTouchListener() {

                    @Override
                    public boolean onTouch(View v, MotionEvent event) {
                        final int action = event.getAction();
                        switch (action) {
                        case MotionEvent.ACTION_DOWN:
                            mIsLongPress = true;                            
                            mHandler.postDelayed(longPress, LONG_PRESS_TIMEOUT);
                            break;
                        case MotionEvent.ACTION_MOVE:
                            actionTwo(event.getX(), event.getY());
                            break;
                        case MotionEvent.ACTION_CANCEL:
                        case MotionEvent.ACTION_UP:
                            mIsLongPress = false;
                            mHandler.removeCallbacks(longPress);
                            break;
                        }
                        return false;
                    }
                });
    }

    private void actionOne() {
        Log.e("XXX", "Long press!!!");
    }

    private void actionTwo(float f, float g) {
        Log.e("XXX", "Scrolling for X : " + f + " Y : " + g);
    }

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

Android 长按滚动 的相关文章

  • Android 通知进度条冻结

    这是我正在使用的代码 http pastebin com 3bMCKURu http pastebin com 3bMCKURu 问题是 一段时间后 文件变得更重 通知栏下拉速度变慢 最后它就冻结了 你的通知太频繁了 这就是它冻结的原因 让
  • getItem 与 getItemAtPosition

    有两种方法可以获取列表视图中的选定项目 list getAdapter getItem position list getItemAtPosition position 我的问题是 哪一种是首选的做法 我见过人们同时使用这两种方法 您可以使
  • 使用 Android 前台服务为 MediaPlayer 创建通知

    问题就在这里 我目前正在开发一个应用程序 该应用程序必须提供 A 广播播放器 来自 URL 的 AAC 直播 还有一个播客播放器 来自 URL 的 MP3 流 该应用程序必须能够在后台运行 Android 服务 并通过以下方式向用户公开持续
  • Android第一次动画不流畅

    我正在尝试一个动画将 imageView 从屏幕底部滑动到屏幕中心 但是当我第一次执行此动画时 它不平滑 但当第二次执行动画时 它是正常且平滑的 我几乎尝试了所有方法 但无法解决我的问题 这是我的动画文件
  • 与 Admob 广告单元 ID 混淆

    我跟着tutorial https developers google com admob android quick start在我的应用程序中创建广告横幅 到目前为止 这有效 我可以看到测试广告 但是 本教程指示我在两个不同的位置使用两
  • 使用 jQuery 选择具有数据属性的元素为其父元素分配一个 null ID

    这确实很奇怪 如果我使用 jQuery find 在滚动事件期间查找具有数据属性的子元素 然后滚动页面将重复添加和删除 IDparents这些元素 这很难描述 但这里有一个可重现的测试用例 http jsfiddle net 8fouvx9
  • 如何从 SQLite 获取记录总数

    我正在尝试从 Sqlite DB 获取行的总数 以下是我想要做的代码片段 我不知道我在这里做错了什么 public static int getTotalCount Context context Cursor c null try c g
  • KitKat(及更低版本)设备上的 Android Material Design

    我将在我们学校开发一个 Android 应用程序作为一个项目 我想使用 Google 的新 Material Design 但我知道它仅适用于 Android L 设备 Jack Underwood 最近发布了名为 Today Calend
  • 设置从 Facebook 登录获取用户电子邮件 ID 的权限

    我在用着Facebook 3 0 SDK对于安卓 我必须实施Facebook登录 我正在访问用户的基本信息 例如姓名 用户 ID 但我也想访问用户的电子邮件 我浏览了很多博客和论坛 但不知道该怎么做 我正在使用我自己的 android 按钮
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • 在意图过滤器中使用多个操作时的默认值

    尝试理解 Android 中的意图和操作并查看文档 http developer android com guide topics intents intents filters html 但我一直看到的一件事是定义了多个操作的意图过滤器
  • TextView 之间有分隔线

    我正在尝试在 android studio 中创建以下布局 因为我对 android 东西还很陌生 所以我第一次尝试使用 LinearLayout 并认为这可能无法实现 现在我正在尝试使用RelativeLayout 我已经用颜色创建了这个
  • 在我的Android中,当其他应用程序想要录制音频时如何停止录音?

    在我的应用程序中 服务通过 AudioRecord 持续录制音频 当我的应用程序运行时 其他与音频记录相关的应用程序 例如 Google 搜索 无法工作 如何知道何时有其他应用想要录制音频 以便我可以停止录制以释放资源 答案是MediaRe
  • Android 启动器快捷方式

    我制作了一个简单的打卡 打卡时钟应用程序 我想向用户添加在主屏幕上创建快捷方式的选项 该快捷方式将切换应用程序的状态 超时 超时 但我根本不希望此快捷方式在屏幕上打开应用程序 这是我的 setupShortcut private void
  • Android相机意图:如何获取全尺寸照片?

    我正在使用意图来启动相机 Intent cameraIntent new Intent android provider MediaStore ACTION IMAGE CAPTURE getParent startActivityForR
  • 使用 Matrix.setPolyToPoly 选择位图上具有 4 个点的区域

    我正在 Android 上使用位图 在使用 4 个点选择位图上的区域时遇到问题 并非所有 4 点组都适合我 在某些情况下 结果只是一个空白位图 而不是裁剪后的位图 如图所示 并且 logcat 中没有任何错误 甚至是内存错误 这是我用来进行
  • 如何在不更改手机语言的情况下更改Android应用程序语言?

    我希望用户在应用程序内选择一种语言 选择语言后 我希望字符串使用特定语言 如果我更改手机语言 那么我的应用程序将以设置的语言运行 我无法找到任何在不更改手机语言的情况下设置语言的方法 此外 一旦设置了语言 更改就应该反映出来 有人可以建议一
  • 如何创建像谷歌位置历史记录一样的Android时间轴视图?

    我想设计像谷歌位置历史这样的用户界面 我必须为我正在使用的应用程序复制此 UIRecyclerView 每行都是水平的LinearLayout其中包含右侧的图标 线条和视图 该线是一个FrameLayout具有圆形背景和半透明圆圈Views
  • 如何将设备连接到Eclipse?

    我无法解决这个简单的问题 我正在尝试通过 USB 电缆将我的设备连接到 Eclipse 在我的 PC 上 我已经安装了 Eclipse 和 Android SDK 并且在模拟器上运行该程序运行良好 我已在我的电脑上下载并安装了 Samsun
  • 当手机旋转(方向改变)时如何最好地重新创建标记/折线

    背景 开发一个使用 Android Google Map v2 的本机 Android 应用程序 使用android support v4 app FragmentActivity 在 Android v2 2 上运行 客观的 在更改手机方

随机推荐

  • 工作线程启动时出现 Elastic Beanstalk SQSD 错误

    我已经部署了一个nodejs工作人员 但是 每当我尝试启动它时 它就会变红并显示以下错误 错误实例 i 6eef007a 模块 AWSEBAutoScalingGroup ConfigSet null 命令在实例上失败 返回代码 1 输出
  • 在tinymce编辑器中更改背景工具栏颜色和文本颜色

    我在tinymce的init调用中使用了这段代码来指向我的主css文件
  • 如何在 ASP.NET Web API 内存测试中添加客户端证书?

    我想使用内存测试我的 Web API 服务HttpServer 当前的设置如下所示 var httpConfig CreateTestHttpConfiguration var server new HttpServer httpConfi
  • 我可以在 iOS AppStore 上显示 2 个或更多开发者名称吗?

    如果有2个或更多开发者为AppStore开发了应用程序 他们的名字如何同时显示在应用程序下方 另外 他们都需要有一个开发者帐户吗 还是一个就足够了 您需要一份单一的付费开发者协议 只有与 Apple 签订开发者分销协议的实体 个人或公司 的
  • 将 Canvas 元素转换为 Image 并存储在数据库中

    I want to store the Image into my Server side Database Once the user draw using canvas and hit a Submit button Canvas El
  • Android Listview 行重复项

    我有一个列表 在我从共享首选项中获得的特定数字 位置 上应该显示图像视图 指示当前正在播放的歌曲 但我得到了位置 但该项目也显示在其他行上 当我滚动列表时出现问题 当我退出另一项活动时会发生这种情况 并且在我的简历中我会这样 Overrid
  • 与 Azure Postgres 的连接时间较长

    我有 Azure Database for PostgreSQL 服务 PaaS 当我尝试查询它时psql然后甚至简单SELECT从一张表查询大约需要 1 5 秒 当我在 postgres 控制台中时 没有问题 查询执行时间不到 100 毫
  • 使用ggplot2,我可以在轴中插入断点吗?

    我想制作一个条形图 其中一个值比所有其他值大得多 有没有办法让y轴不连续 我的数据如下 df lt data frame a c 1 2 3 500 b c a1 a2 a3 a4 p lt ggplot data df aes x b y
  • 检查 PHP 多维数组中是否存在数组值

    我有以下多维数组 Array 0 gt Array id gt 1 name gt Jonah points gt 27 1 gt Array id gt 2 name gt Mark points gt 34 我目前正在使用foreach
  • 在 C++ 中使用 getline 忽略空格[重复]

    这个问题在这里已经有答案了 嘿 我正在尝试编写一个程序 该程序将接受人们的新任务 将其添加到堆栈中 能够显示任务 能够将该堆栈保存到文本文件中 然后读取文本文件 当我尝试接受用户的输入时 问题就出现了 每当您输入带有空格的字符串时 选择要执
  • 创建自定义 tomcat 会话管理器而不将 jar 放入 CATALINA_HOME 目录?

    我正在为 Tomcat 开发一个自定义会话管理器 并且我让它工作时有一个警告 我必须将 jar 以及所有相关的 jar 放在 CATALINA HOME lib 目录中 否则我会得到一个 noclassdef 发现异常 即使类位于 WEB
  • PHPExcel 创建“不可读的内容”

    我尝试了大约 1000 种不同的方法来解决这个问题 如果其他人能够发现问题 我们将不胜感激 我有使用 PHPExcel 的代码 可以生成多个 Excel 工作表并将它们保存到磁盘 使用 MS Excel 2010 打开第二个文件及以后的所有
  • Images.xcassets 为 iPhone 6 拍摄了错误的图像?

    我已经为 2x Retina 4 和 3x 设置了三个图像 当我运行该应用程序时 我得到以下结果 iPhone 4s 推特图像 iPhone 5 谷歌图片 iPhone 6 脸书图片 iPhone 6 推特图像 一切都很好 但是当我跑在iP
  • 使用 JMESPATH 获取对象上的 JSON 元素的查询

    当我有一个简单的 JSON 时 例如 name Tom age 20 是否有任何 JMESPath 查询可以获取age只有当name is Tom 查询应该得到20与上面的 JSON 一起 但是 如果名字不是Tom like name Bo
  • 为什么在平移和更改相机角度时我的有线球体会变成椭球体?

    我需要沿 z 轴来回平移有线球体 同时更改相机角度 每当我的球体被平移时 它就会慢慢变成椭球体 我实在不明白为什么 在这里您可以看到我认为有错误的代码片段 此外 调整窗口大小时不应更改形状 而只能更改其大小 void init glClea
  • Android 中的全文搜索示例

    我很难理解如何在 Android 上使用全文搜索 FTS 我读过有关 FTS3 和 FTS4 扩展的 SQLite 文档 而且我知道在Android上可以做到 然而 我很难找到任何我能理解的例子 基本数据库模型 一个 SQLite 数据库表
  • iPhone 亮度私有 API 无法正常工作

    我正在尝试设置背光的亮度 但它的表现非常奇怪 我正在使用私有 API id UIApplication共享应用 setBacklightLevel 1 0f 然而 当我调用此命令时 屏幕变暗 并没有像我想象的那样变得 100 亮 我用各种数
  • 匹配除电子邮件地址之外的所有内容的正则表达式

    假设这是输入 这是一个段落 这是一个段落 这是一个段落 这是一个段落 这是一个段落 这是一个段落 这是一个电子邮件地址 电子邮件受保护 我想要一个匹配除电子邮件地址之外的所有内容的正则表达式 我努力了 这会匹配除电子邮件所在的 LINE 之
  • 是否有缺少固定宽度类型 (intXX_t) 的平台?

    C 11 具有固定宽度 2 的补码类型 u int8 t u int16 t etc 然而 这些类型是可选的 有时我需要使用这些类型 因此我的代码可能不太可移植 有没有什么平台 提供 C 11 编译器 目前 哪些类型不存在 是否有任何 通用
  • Android 长按滚动

    我想将长按与滚动 连接 这样用户就不必释放屏幕并开始滚动 我已经实现了手势检测器 final GestureDetector gestureDetector new GestureDetector new GestureDetector S