当前位置: 首页 > 面试题库 >

如何禁用和启用android ScrollView上的滚动?

刘嘉木
2023-03-14
问题内容

5年前关闭。

我是一名Android开发人员。我也想使用ScrollView。此ScrollView需要一段时间禁用滚动功能并需要一段时间启用滚动功能。但是我无法禁用滚动功能。我如何实现它。请帮助我。也尝试使用一些代码,例如

fullparentscrolling.setHorizontalFadingEdgeEnabled(false);
fullparentscrolling.setVerticalFadingEdgeEnabled(false);

要么

 fullparentscrolling.setEnabled(false);

但这行不通。


问题答案:

试试这个

像这样创建您的CustomScrollview

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.ScrollView;

public class CustomScrollView extends ScrollView {

    private boolean enableScrolling = true;

    public boolean isEnableScrolling() {
        return enableScrolling;
    }

    public void setEnableScrolling(boolean enableScrolling) {
        this.enableScrolling = enableScrolling;
    }

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

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

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

    @Override
    public boolean onInterceptTouchEvent(MotionEvent ev) {

        if (isEnableScrolling()) {
            return super.onInterceptTouchEvent(ev);
        } else {
            return false;
        }
    }
    @Override
    public boolean onTouchEvent(MotionEvent ev) {
       if (isEnableScrolling()) {
            return super.onTouchEvent(ev);
       } else {
           return false;
       }
}
}

在您的xml

//“ com.example.demo”替换为您的包名称

<com.example.demo.CustomScrollView
        android:id="@+id/myScroll"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </com.example.demo.CustomScrollView>

在您的活动中

CustomScrollView myScrollView = (CustomScrollView) findViewById(R.id.myScroll);
        myScrollView.setEnableScrolling(false); // disable scrolling
        myScrollView.setEnableScrolling(true); // enable scrolling


 类似资料:
  • 如何禁用滚动?

  • 我有两个带有ImageIcon的JRadioButton。由于我使用的图像图标,我需要给出一个按钮被选中而另一个按钮未被选中的外观。为此,我尝试禁用另一个按钮,它会自动将ImageIcon更改为disabled外观。 问题是,当我点击禁用的JRadioButton时,什么都没有发生,甚至连JRadioButton上的ActionListener都没有被调用。 有没有一种方法可以通过直接单击禁用的J

  • 问题内容: 我有一个UIViewController,我想在不同情况下禁用或启用屏幕旋转 例: 我怎样才能做到这一点? 问题答案: 我有答案。在上,如果您旋转设备,按下ViewController等,则始终调用此函数 迅速 更新 3/4 是自定义参数。 如何使用: 在Appdelegate中: 在ViewController中: 调用方法ViewDidLoad或viewWillAppear时。我们

  • 问题内容: 我使用的是scrollTo jQuery插件,想知道是否可以通过Java临时禁用window元素上的滚动吗?我要禁用滚动的原因是,当您在scrollTo设置动画时滚动时,它确实很难看;) 当然,我可以做一个,然后在动画停止时将其放回自动状态,但是如果滚动条仍然可见但处于非活动状态会更好。 问题答案: 该事件无法取消。但是您可以通过 取消 以下交互事件来实现: 鼠标 和 触摸滚动 以及与

  • 我有一个使用MVVM绑定初始化的dropdown列表,它按预期被禁用。 现在在某些情况下,我想在其他控件触发的某些事件中以编程方式启用此下拉列表。 在该事件处理程序中,我调用这一行:

  • 问题内容: 我有一个包含大量内容的HTML,并且在加载HTML后就会出现一个垂直滚动条。现在,从此HTML中加载了全屏IFRAME。问题是当加载IFRAME时,父滚动条仍然存在,我想在加载Iframe时禁用滚动条。 我试过了: ,它不适用于FF和chrome。 之后,我仍然可以滚动,整个iframe会向上滚动以显示父HTML。 我的要求是,在加载IFRAME时,如果父HTML具有滚动条,则我们永远