第五节 事件拦截操作, 针对于 scroll-view

说明: 事件拦截的操作主要针对scroll-view组件,首先需要搞明白为何使用事件拦截;

scroll-view:是微信提供可以上下左右滚动的组件 官网地址: https://developers.weixin.qq.com/miniprogram/dev/component/scroll-view.html

如果没用过该组件的可以看着官方文档练习练习

{
"title": [{
"id": "#title1",
"content": "使用事件拦截方式解决什么问题?",
"ztitle": null
}, {
"id": "#title2",
"content": "事件拦截实现方式",
"ztitle": null
}, {
"id": "#title3",
"content": "如何在聊天系统框架中布局事件拦截",
"ztitle": null
}]
}

使用事件拦截方式解决什么问题?

说明: 在公司开发一个为微信小程序的时候,开发一个 滑动标签卡尺, 日历组件,  聊天系统(可查看历史消息-分页),  事件卡片的分页滚动;

使用scroll-view所碰见的问题: 使用scroll-view做分页数据展示,或是写日历插件数据刷新的时候,经常会有以下的需求:

1.在数据刷新的时候需要定位到某个标签的位置.2.滚动到底部的时候触发一个函数刷新数据,并做定位3.滚动到顶部的时候触发一个函数刷新数据,并做定位

1>   在使用scroll-view的时候, 经常用到三个事件

scroll-into-view
值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素
bindscrolltoupper 
滚动到底部/右边时触发
bindscrolltolower
滚动到顶部/左边时触发

scroll-view我们经常会采用scroll-into-view做定位,而且,滚动到底部或是顶部的时候接着触发函数并且定位,但是scroll-view定位的时候在特定的条件下会触发其他两个函数,导致数据出现异常.体验比较差,

但是这个问题还好,修复了大半天终于修复好了.然而测试的时候,幸运的事儿出现了.ios 滚动到顶部或是底部触发事件,就滚动一次,但是该事件却一下子触发了将近20多次.又出现了数据异常.(在写scroll-view

下拉展示历史消息的时候碰见该问题,就ios下拉一次方法连续触发20多次, 就算是微信小程序,也没有解决ios和安卓端兼容的问题,有的需要针对性的去优化)

微信小程序的兼容性测试

事件拦截实现方式

1> 首先,写一个scroll-view,并添加滚动到底部触发的函数,然后刷新数据的时候定位到倒数第一个或是第二个标签

如何在聊天系统框架中布局事件拦截

原文地址:https://www.cnblogs.com/han-guang-xue/p/12172922.html

时间: 2024-10-17 01:19:00

第五节 事件拦截操作, 针对于 scroll-view的相关文章

Android输入事件从读取到分发五:事件分发前的拦截过程

在前面的文章:Android输入事件从读取到分发三:InputDispatcherThread线程分发事件的过程 一文中已经提过事件在分发前要做拦截的事情,只不过当时没有展开来分析,因此这篇文章的主要目的就是分析事件在分发前的拦截过程.(注:Android源码版本为6.0) 在Android输入事件从读取到分发三:InputDispatcherThread线程分发事件的过程 一文中我们分析到InputDispatcher类的notifyKey方法中,第一次尝试拦截事件,可以在看看这个方法: vo

[JAVA_开课吧资源]第五周 I/O操作、多线程、网络编程技术

主题一 I/O操作 » 流的概念 在面向对象语言中, 数据的输入和输出都是通过数据流来实现的.数据流是一组有顺序.有起点和终点的字符集合.就好比是两个不同的池子,一个池子中存满了水,而另一个池子中则没有任何的东西,在这两个水池中安放一个管子,水就可以从一个池子流向另一个池子了.在从一个池子向另一个池子输送水的过程中,水扮演的角色就是数据流. [请点击查看更多内容 转自文章] » Stream stream代表的是任何有能力产出数据的数据源,或是任何有能力接收数据的接收源.在Java的IO中,所有

第三百八十五节,Django+Xadmin打造上线标准的在线教育平台—登录功能实现,回填数据以及错误提示html

第三百八十五节,Django+Xadmin打造上线标准的在线教育平台-登录功能实现 1,配置登录路由 from django.conf.urls import url, include # 导入django自在的include逻辑 from django.contrib import admin from django.views.generic import TemplateView # 导入django自带的TemplateView逻辑 import xadmin # 导入xadmin fr

Android ViewGroup触摸事件拦截详解

前言 在自定义ViewGroup中,有时候需要实现触摸事件拦截,比如ListView下拉刷新就是典型的触摸事件拦截的例子.触摸事件拦截就是在触摸事件被parent view拦截,而不会分发给其child,即使触摸发生在该child身上.被拦截的事件会转到parent view的onTouchEvent方法中进行处理.但是这个交互过程还是挺复杂的,有多种情况,今天我们就来分析一下吧.这篇分析文章已经放了一段时间了,如果有任何问题请高人指出. 触摸事件的分发 简单来说触摸事件的分发会经过这么几个顺序

第三百七十五节,Django+Xadmin打造上线标准的在线教育平台—创建课程机构app,在models.py文件生成3张表,城市表、课程机构表、讲师表

第三百七十五节,Django+Xadmin打造上线标准的在线教育平台-创建课程机构app,在models.py文件生成3张表,城市表.课程机构表.讲师表 创建名称为app_organization的课程机构APP,写数据库操作文件models.py models.py文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from __future__ import unicode_literals from datetime import datetim

事件拦截机制分析(Android群英传)

内容是博主照着书敲出来的,博主码字挺辛苦的,转载请注明出处,后序内容陆续会码出. 当Android系统捕获到用户的各种输入事件后,如何准确地传递给真正需要这个事件的控件呢?Android给我们提供了一整套完善的事件传递.处理机制,来帮助开发者完成准确的事件分配与处理. 要了解触摸事件的拦截机制,首先要了解什么是触摸事件?顾名思义,触摸事件就是捕获触摸屏幕后产生的事件.当点击一个按钮时,通常就会产生两个或者三个事件--按钮按下,这是事件一:如果不小心滑动一点,这就是事件二:当手抬起,这是事件三.A

第一周第五节,目录结构及ls、alias命令

目录结构.文件类型 目录结构:/boot:系统引导文件.内核 /bin:用户的基本命令 /dev:设备文件 /etc:配置文件 /home:用户目录 /root:root用户目录 /sbin:管理类的基本命令 /tmp:临时文件存放地 /usr:共享的只读数据 /mnt:临时文件系统挂载点 /media:移动设备挂载点 /opt:第三方应用程序的安装位置 /srv:系统运行的服务用到的数据 /var:变化的数据文件 /proc:用于输出内核与进程信息相关的虚拟文件系统 /sys:用于输出当前系统

软件构造 第三章第五节 ADT和OOP中的等价性

第三章第五节 ADT和OOP中的等价性 1.==与equals ==是引用等价性 :而equals()是对象等价性. == 比较的是索引.更准确的说,它测试的是指向相等(referential equality).如果两个索引指向同一块存储区域,那它们就是==的.对于我们之前提到过的快照图来说,==就意味着它们的箭头指向同一个对象. equals()操作比较的是对象的内容,换句话说,它测试的是对象值相等(object equality).在每一个ADT中,equals操作必须合理定义 2.等价性

Linux学习第五节课-标准I/O和管道

Linux学习第五节课 ------------------------------------------------------------------------------------------------------------------------------------------------------------------ 三十一.标准输入和输出 程序:指令+数据 读入数据:Input 输出数据:Output 打开的文件都有一个fd: file descriptor (文