Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >有没有办法识别滚动视图在android中向上或向下滚动?

有没有办法识别滚动视图在android中向上或向下滚动?
EN

Stack Overflow用户
提问于 2015-01-09 12:24:17
回答 4查看 9.8K关注 0票数 5

嘿,我只是想知道在android .Wanted中滚动视图是向上还是向下滚动,以便在向上和向下滚动时执行不同的操作。

任何想法都很受欢迎,谢谢

EN

回答 4

Stack Overflow用户

发布于 2016-02-12 14:51:56

尝试一下:扩展Scrollview并重写onTouchEvent方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private float mTouchPosition;
private float mReleasePosition;

@Override
public boolean onTouchEvent(MotionEvent event) {

    if (event.getAction() == MotionEvent.ACTION_DOWN) {
        mTouchPosition = event.getY();
    }
    if (event.getAction() == MotionEvent.ACTION_UP) {
        mReleasePosition = event.getY();

        if (mTouchPosition - mReleasePosition > 0) {
            // user scroll down
        } else {
            //user scroll up
        }
    }
    return super.onTouchEvent(event);
}
票数 7
EN

Stack Overflow用户

发布于 2019-06-26 13:22:13

试试这个,它对我很管用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        scrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
            @Override
            public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
                 if(scrollY<=oldScrollY)
                {
                    //scroll up
                    relativeLayout.setVisibility(View.VISIBLE);
                }
                else {
                relativeLayout.setVisibility(View.GONE);}
            }
        });
    }
票数 6
EN

Stack Overflow用户

发布于 2017-11-12 06:54:23

是的,你可以用这个

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scrollView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
        @Override
        public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {

        }
    }); 

但这要求minSdkVersion必须是23岁。因此,您可以将minSdkVersion更改为23,或者创建一个自定义滚动视图,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class TouchDetectableScrollView extends ScrollView  {

OnMyScrollChangeListener myScrollChangeListener;

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

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

public TouchDetectableScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);
}

@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
    super.onScrollChanged(l, t, oldl, oldt);

    if (myScrollChangeListener!=null)
    {
        if (t>oldt)
        {
            myScrollChangeListener.onScrollDown();
        }
        else if (t<oldt){
            myScrollChangeListener.onScrollUp();
        }

    }
}

public OnMyScrollChangeListener getMyScrollChangeListener() {
    return myScrollChangeListener;
}

public void setMyScrollChangeListener(OnMyScrollChangeListener myScrollChangeListener) {
    this.myScrollChangeListener = myScrollChangeListener;
}

public interface OnMyScrollChangeListener
{
        public void onScrollUp();
        public void onScrollDown();
}}

在xml和java代码中使用TouchDetectableScrollView,然后像这样设置listener:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
scrollView.setMyScrollChangeListener(new TouchDetectableScrollView.OnMyScrollChangeListener() {
        @Override
        public void onScrollUp() {
            //Toast.makeText(getActivity(), "Scrolling up", Toast.LENGTH_SHORT).show();
            Log.d("scroll","up");

        }

        @Override
        public void onScrollDown() {
           // Toast.makeText(getActivity(), "Scrolling down", Toast.LENGTH_SHORT).show();
            Log.d("scroll","down");

        }
    });
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27860529

复制
相关文章
Vue 实现单行向上滚动
这个单行轮播是在之前多行轮播的基础上迭代的,本质上二者的思路都相同的,解决了核心重复轮播的算法后,剩下的就是样式的调整。
上山打老虎了
2022/06/15
1.5K0
Qm之滚动视图
❝ScrollView(滚动视图)类似于Qt 5版本的ScrollView,它提供用户定义内容的滚动。兼容Qt4与Qt5版本。❞ 1. 演示 可实现轻弹和拖动的功能。 2. 例子 ScrollView { width: 640 height: 480 Image { source: "./qthub_com.png" } } 3. 使用场景 一般用在显示的内容尺寸大于实际显示的尺寸时使用。 图片显示器。 4. 源码 /** * Author: Qt君
Qt君
2023/03/17
4500
Qm之滚动视图
Bootstrap滚动监听不用offset实现向下偏移
Bootstrap滚动监听中文文档:http://v3.bootcss.com/javascript/#scrollspy 我就不在此赘述了。
德顺
2019/11/13
2K0
Bootstrap滚动监听不用offset实现向下偏移
iOS学习笔记——滚动视图(scrollView)
滚动视图:在根视图中添加UIScrollViewDelegate协议,声明一些对象属性
全栈程序员站长
2022/07/18
1.4K0
iOS滚动视图UIScrollView使用方法
滚动视图还满常见的,这里学习了一下基本所有的用法、属性设置和委托,单讲一个ScrollView也很简单,直接上代码远比一个个讲要清晰明了地多。
Cloudox
2021/11/23
1.6K0
iOS滚动视图UIScrollView使用方法
Android记录 滚动选择控件
Android记录 滚动选择控件 这应该是我用过的中,最好用的滚轮控件了,但是因为support包和我的不兼容,所以在依赖的时候把support包排除掉 依赖: implementation ("com.github.bumptech.glide:glide:$glide_version") { exclude group: "com.android.support"} 使用: <com.zyyoona7.wheel.WheelView android:id="@+id/day_w
Xiaolei123
2019/03/22
2.3K0
android-recyclerview-滚动监听
RecyclerView的滚动事件OnScrollListener研究 http://www.open-open.com/lib/view/open1477623086381.html
tea9
2022/07/16
1.1K0
java 除法向上,向下取整
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144136.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
2.4K0
java 除法向上,向下取整
Android开发笔记(一百三十五)应用栏布局AppBarLayout
Android5.0推出工具栏Toolbar用来替代ActionBar,灵活性和易用性大大增强,有关Toolbar的详细介绍参见《Android开发笔记(一百一十九)工具栏Toolbar》。 可是仅仅使用Toolbar的话,还是有些呆板,比如说Toolbar固定占据着页面顶端,既不能跟着主体页面移上去,也不会跟着主体页面拉下来。为了让App页面更加生动活泼,势必要求Toolbar在某些特定的场景上移或者下拉,如此才能满足酷炫的页面特效需要。那么Android5.0也同时给出了相应的解决方案,即推出MaterialDesign库,通过该库中的AppBarLayout控件,对Toolbar加以包装,从而实现顶部工具栏的动态变化效果。 AppBarLayout其实继承自LinearLayout,所以具备LinearLayout的所有属性与方法。对于大家关心的额外功能,则主要有以下几点: 1、支持响应主体页面的滑动行为,即在主体页面上移或者下拉时,AppBarLayout能够捕捉到主体页面的滚动操作; 2、AppBarLayout捕捉到滚动操作之后,还要通知头部控件(通常是Toolbar),告诉头部控件你要怎么滚,是爱咋咋滚,还是满大街滚; 具体到实现上,要在工程中做以下修改: 1、添加几个库的支持,包括appcompat-v7库(Toolbar需要)、design库(AppBarLayout需要)、recyclerview库(主页面的RecyclerView需要); 2、布局文件的根布局采用android.support.design.widget.CoordinatorLayout,因为design库的动态效果都依赖于该控件; 3、CoordinatorLayout节点要添加命名空间声明xmlns:app="http://schemas.android.com/apk/res-auto"; 4、使用android.support.design.widget.AppBarLayout节点包裹Toobar; 5、Toobar节点添加滚动属性app:layout_scrollFlags="scroll|enterAlways",声明工具栏的滚动行为标志; 6、演示页面的主体页面使用RecyclerView控件,并给该控件节点添加行为属性app:layout_behavior="@string/appbar_scrolling_view_behavior",表示通知AppBarLayout捕捉RecyclerView的滚动操作。 下面是AppBarLayout结合RecyclerView实现的工具栏向上滚动效果截图:
aqi00
2019/01/18
2K0
移动跨平台框架ReactNative滚动视图ScrollView【17】
低头一族的我们,每天花大把大把的时间拉啊拉啊。当屏幕的内容超过一屏时,我们很熟练的往上拉一点就可以看到剩下的内容了,这时候右边还会滚动条告诉我们这是可以往上拉的。
江一铭
2022/06/17
1.4K0
Barchart实现滚动标签跟随滚动
目前有功能比较强大的柱形图Charts,写这个demo的目的主要是产品要实现 滚动柱形图,标签要跟随滚动。所以重新写了一个简单的demo实现了功能, 具体使用看demo,很简单
赵哥窟
2018/09/13
2K0
Barchart实现滚动标签跟随滚动
点击加载更多

相似问题

带有向上或向下箭头的Android滚动视图

213

如何查看滚动视图/回收视图是否正在向上或向下滚动android

21

Android :隐藏/显示页脚/页眉作为滚动滚动视图向下/向上滚动

11

向上或向下滚动文本视图的按钮

34

在jQuery中检测用户向下滚动或向上滚动

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文