当前位置: 首页 > 知识库问答 >
问题:

禁用Android scrollview,但仍然允许点击滚动视图中的按钮

冯奇思
2023-03-14

我希望能够防止用户能够在我的Android ScrollView中滚动,但仍然检测当他们点击滚动视图中的按钮。

我对ScrollView类进行了子类化,并对OnInterceptTouchEventOnTouchEvent方法进行了一些修改,但似乎不太正确。下面的代码停止了滚动,但似乎禁用了轻击(但不是全部,比如如果你不移动就上下移动,它可以工作,但如果你的手指在轻击时稍微移动,它就不会注册)。我还删除了onInterceptTouchEvent,它几乎可以正常工作,但当用户移除手指时,scrollview仍然滚动。

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev)
    {
        App.log("onInterceptTouchEvent, with action : " + ev.getAction());
        switch(ev.getAction())
        {
            case MotionEvent.ACTION_MOVE:
                return true;
        }
        return super.onInterceptTouchEvent(ev);

    }

    @Override
    public boolean onTouchEvent(MotionEvent ev)
    {
        App.log("onTouchEvent, with action : " + ev.getAction());
        switch(ev.getAction())
        {
            case MotionEvent.ACTION_MOVE:
                return false;
        }
        return super.onTouchEvent(ev);
    }

共有1个答案

仲俊豪
2023-03-14

最后,我发现下面的解决方案正好做到了我所需要的:

@Override
public boolean onTouchEvent(MotionEvent ev)
{
    App.log("onTouchEvent, with action : " + ev.getAction());
    switch(ev.getAction())
    {
        case MotionEvent.ACTION_MOVE:
            return false;
    }
    return super.onTouchEvent(ev);
}
 类似资料:
  • 我希望能够滚动通过整个页面,但没有滚动条显示。 在Google Chrome中是: 但Mozilla Firefox和Internet Explorer似乎不是这样工作的。 我也在CSS中尝试过这个: 这确实隐藏了滚动条,但我不能再滚动了。 有没有一种方法,我可以删除滚动条,同时仍然能够滚动整个页面? 请使用CSS或HTML。

  • 我有一个,其元素样式如下: 我需要允许滚动沿Y轴当它变得高于300px,这工作很好。但我需要将设置为滚动条本身。 我尝试使用这个元素样式: 当它隐藏滚动条时,它也不允许滚动。有没有一种方法可以在滚动条不可见的情况下滚动?

  • 问题内容: 我想创建一个可以滚动但不显示滚动条的div。我已经找到了Webkit的解决方案(如下),但是如何在其他浏览器中实现呢? 我宁愿避免使用javascript插件。希望找到CSS或特定于供应商的解决方案。 问题答案: 您必须将可滚动div包裹在另一个div中,以隐藏滚动条。 。 顺便说一句:一个漂亮的jQuery小插件jScrollPane使用了相同的技术

  • 问题内容: 我一直在寻找一种“灯箱”类型的解决方案,它允许这样做,但还没有找到(请提出建议,如果您知道的话)。 我尝试重新创建的行为就像单击图片时在Pinterest上看到的一样。叠加层是可滚动的( 因为整个叠加层像页面顶部的页面一样向上移动 ),但是叠加层 后面 的主体是固定的。 我试图仅使用CSS( _即使用覆盖整个页面和正文的覆盖层)_来创建它,但这并不能阻止其滚动。 如何防止正文/页面滚动

  • 嗨,我正在制作自定义拨号器,因此我创建了自己的输入板。 问题是我如何禁用EditText但仍然允许剪切/复制/粘贴?股票拨号器可以做到这一点。 我已经尝试了,但它禁用了剪切/复制(虽然仍然可以粘贴)。 我还尝试通过编程禁用,这将禁用所有三个命令: 从清单中禁用它也不起作用: 有解决办法吗?谢谢

  • 问题是当我将页面收缩到某个点时, 元素的顶部溢出,奇怪的是底部没有溢出。说清楚一点,我不想让这两个都溢出来。 这里有一个指向它的JSFiddle链接:https://jsfidle.net/maep468x/1 您将看到,当您运行它并将结果窗口缩小到大约350px时, 元素开始溢出。 我已经尝试从.main-content规则中删除我的line-height和font-size属性,但它仍然溢出。