首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

仿腾讯课堂固定滚动列表ReactNative组件

前言 由于业务需要做成类似腾讯课堂课程详情滚动的效果,考虑后面有可能有新的呈现方式,RN提供的组件没有这种滚动控件,不如自己封装,其实去年已经写了一篇但是写的比较乱,周末花了点时间重写梳理下做的东西。...- 80}},那这样滚动距离120时,滚动条到底部了,视频播发控件的区域距离屏幕顶部还有80。...一开始想两种大的思路:一种是完全靠JS层面,通过ScrollView暴露的API去实现,第二种是原生+JS,这里涉及几个关键的东西,如何寻找Tab导航控件中的ScrollView或者ListView和控制手势实现的效果...一个是怎么判断手势滑动以及外层滚动容器到底部和内层滚动到顶部? 第二个是寻找滚动组件并通知内层滚动组件开始滚动?...如何封装RN组件 参考 RN 0.51中文文档,我们需要做这些东西: 原生上要做的事 1.创建原生固定滚动控件 2.创建管理滚动控件ViewManager的子类 3.创建实现了ReactPackage

4.8K70

Android的FixScrollView自定义控件

需求模仿腾讯课堂视频播放详情页面,效果如图: 1外层滚动控件到顶部,内层控制滚动 2内层滚动到顶部,外层控制滚动 835108-20170331111709149-156183149.gif 835108...-20170331111723820-1491053367.gif 基本思路:是最外层有个父ScrollView,子tab页面中有ListView(React-native原生实现也是ScrollView...),现在外部的ScrollView设定一个固定高度(屏幕高度+视频高度一半),接下来解决的难点是要使用原生的父ScrollView根据手势以及父ScrollView滚到底部判断是否把事件分发给子页面中ListView...接下来要了解几个知识点, ①了解下Android事件分发的机制  ②了解哪些触摸类型事件以及之间的联系 ③如何在ViewGroup中寻找子控件(递归 找一个具体的控件大坑,尤其是再React-Native...//当手指移动或者抬起的时候计算其值 x2 = ev.getX(); y2 = ev.getY(); //是否到底部

1.8K80
您找到你想要的搜索结果了吗?
是的
没有找到

基础篇章:关于 React Native 之 ListView 组件的讲解

大家好,我是ListView,我是React Native大家族中基础组件中,一个核心组件。我可以高效的展示垂直滚动的变化的数据列表,而且这个列表有一个特点就是结构和数据比较相似才可以哦。...举个例子:我最基本的使用方式就是创建一个ListView.DataSource数据源,然后给它传递一个普通的数据数组,再使用数据源来实例化一个ListView组件,并且定义它的renderRow回调函数...onEndReached function 当所有的数据都已经渲染过,并且列表被滚动到距离最底部不足onEndReachedThreshold个像素的距离时调用。原生滚动事件会被作为参数传递。...renderScrollComponent function 返回在列表行呈现的滚动组件的功能。默认为ScrollView。...AppRegistry.registerComponent('ListViewDemo', () => ListViewDemo); ok,关于ListView组件的讲解大概就先讲到这里,更多的内容和实例,欢迎大家移步官网

2K80

React Native之ScrollView控件详解

概述 ScrollView在Android和ios原生开发中都比较常见,是一个 滚动视图控件。在RN开发中,系统也给我们提供了这么一个控件。...这种情况下可以使用此属性,指定某种颜色来填充多余的空间,以避免设置背景和创建不必要的绘制开销。一般情况下并不需要这种高级优化技巧。...36:start (默认) 会将停驻点对齐在左侧(水平)或顶部(垂直) 37:center 会将停驻点对齐中间 38:end 会将停驻点对齐右侧(水平)或底部(垂直) 39:(ios)snapToInterval...Image, ScrollView, TouchableOpacity, } from 'react-native'; class ScrollViewDemo extends Component...又如使用ScrollView实现一个简单的广告栏(当然我们可以使用第三方组件react-native-swiper)。如图: ?

5.8K70

webview 和 React Native 中吸顶效果实现

希望通过这篇文章,你将学习: webview 中吸顶的实现方式React Native 中吸顶方法,SectionList 是如何实现吸顶的。...scrollview 是一个滚动的容器组件,web 中并没有现成的 scrollview 组件,常见的 scrollview 组件主要存在小程序或者一些跨段解决方案中,比如 Taro 中的 Scrollview...,这些组件并非是原生组件,都是在各个平台底层基于原生的 DOM 元素和 EventListener 封装的。...微信小程序为例子,看一下 scroll-view 如何实现吸顶,这种方式主要是依靠计算的方式,来确定什么时候元素应该吸顶了。...三 React Native 中的吸顶方式 React Native 是跨端开发的一个解决方案,不同于 webview,webview 的渲染还是走 web 那一套,而 RN 这个一点就不同于 webview

2.9K10

Flutter学习指南App, 一起来玩Flutter吧~

同时它也是构建未来的Google Fuchsia应用的主要方式。...从事移动开发这么多年, 各种跨平台技术层出不穷.从最初的基于web的phonegap/cordova后来的原生组件渲染react-native/weex,再到现在的flutter通过自己开发了一套原生控件渲染...xuexiangjys/FlutterSample/tree/master/flutter_learn 组件 Animation(动画)、AppBar(标题)、BottomNavigationBar(底部导航栏...Drawer(侧滑菜单)、 Form(表单)、Gesture(手势)、Image(图片)、Input(输入框)、Layout(布局)、 Notification(冒泡通知)、Progress(进度条)、ScrollView...(列表滚动)、Tab(选项卡)、Text(文字) 工具 DeviceInfo(设备信息)、EventBus(事件总线)、JPush(极光推送)、JsonSerialize(序列化)、MMKV(键值对保存

1.6K10

移动跨平台框架ReactNative滚动视图ScrollView【17】

它不会生成原生 UI 组件,而是基于 ReactReact Native 是一个用于构建基于 Web 的交互界面的 JavaScript 库,因此会有更丰富的 UI 体验效果,同时也能够很好地调用底层框架的...React Native 滚动视图 ScrollView 低头一族的我们,每天花大把大把的时间拉啊拉啊。...当屏幕的内容超过一屏时,我们很熟练的往上拉一点就可以看到剩下的内容了,这时候右边还会滚动条告诉我们这是可以往上拉的。 这看起来很简单的内容,并不是每个 React Native 组件天生都自带的。...ScrollView 滚动视图组件 `` 滚动视图组件,顾名思义,就是当内容超过指定的高度时会可以通过滑动来显示,右边还会显示滚动条。 `` 的使用很简单,只要包括在要滚动的组件外面就可以了。...例如上面那个范例,我们只需要做一点点的修改 App.js import React, { Component } from 'react'; import { Text, View, ScrollView

1.4K20

react native简单入门

常用属性如下:(此组件与TouchableHighlight的区别在于并没有额外的颜色变化,更适于一般场景) activeOpacity 指定封装的视图在被触摸操作激活时多少不透明度显示(通常在01...之间) onPress TouchableHighlight 用于写按钮的组件,常用属性如下: activeOpacity 指定封装的视图在被触摸操作激活时多少不透明度显示(通常在01之间) underlayColor...Modal ScrollView horizontal 当此属性为true的时候,所有的子视图会在水平方向上排成一行,而不是默认的在垂直方向上排成一列。默认值为false。...showsHorizontalScrollIndicator 当此属性为true的时候,显示一个水平方向的滚动条。...FlatList data 数据 renderItem 每一项的渲染组件 onEndReached 当列表被滚动到距离内容最底部不足onEndReachedThreshold的距离时调用 onEndReachedThreshold

3.5K10

react native 无侵入 彻底解决键盘遮挡问题

一下就会发现都在查找解决方法 例如: 放在 scrollView 如何自动顶上去,还要考虑偏移量问题 RN中监控键盘的位置变化 自定义一个 scrollView,所有需要防遮挡的,都必须使用这个自定义...isAvoidKeyBoardEnable 来控制是否防遮挡 avoidKeyBoardDistance 来控制输入框底部键盘的距离 so easy 3....现在来说如何兼容 ReactNative 修改 RN 源码 另外多说一句,建议所有项目都 pod 引入 ReactNative React.podspec 依赖 KKInputAvoidKeyBoard...s.subspec "RCTText" do |ss| ss.dependency "KKInputAvoidKeyBoard" ss.dependency "React...InputText 增加了以下两个属性和功能 RN中无代码侵入,项目无侵入 /* 键盘遮挡后,是否自动调整,防止键盘遮挡 */ isAvoidKeyBoardEnable={true} /* 键盘顶起后,底部距离键盘的距离

3.5K20

基础篇章:React Native之 ScrollView 的讲解

大家好,我是ScrollView,相信做过移动或者前端开发的人肯定都很熟悉我,对,我就是那个可以滚动的容器,滚有点难听,我是可以滑动的容器,我滑动起来,摩擦摩擦,似魔鬼的步伐。...onContentSizeChange function 该函数方法会在ScrollView内部可滚动内容的视图发生变化时调用。...在ScrollView视图之外的视图(该视图的overflow属性值必须要为hidden)会从被暂时移除,该设置可以提高滚动的性能。...地址:[https://facebook.github.io/react-native/docs/scrollview.html] 我的秀丽身材 闻其声不见其人,光知道我,没见过我岂不是很out?...Image, ScrollView, TouchableOpacity, } from 'react-native'; class ImageDemo extends Component

1.9K50

React Native UI界面还原,组件布局与动画效果

React Native UI和写 Android XML layout 布局 ,个人感觉是大同小异在《ReactJSReact-Native,架构原理概述》里面提过web 环境中,React 框架...,JSX 源码通过 React 框架最终渲染到了浏览器的真实 DOM 中在 React Native 框架中,JSX 源码通过 React Native 框架编译后,通过对应平台的 Bridge 实现了与原生框架的通信...如果我们在程序中调用了 React Native 提供的 API,那么 React Native 框架就通过 Bridge 调用原生框架中的方法。...层将此 JSON 文件映射渲染原生 App 的页面元素上,最终实现了在项目中只需要控制 state 以及 props 的变更来引起 iOS 与 Android 平台的 UI 变更。...<Animated.ScrollView // <-- 使用可动画化的ScrollView组件  scrollEventThrottle={1} // <-- 设为1确保滚动事件的触发频率足够密集

4.7K20

taro多端实例|仿微信界面app聊天|taro聊天

taro-chatroom多端实战项目是基于taro+react+redux+reactNative等技术开发的仿微信界面聊天实例,实现了消息发送、动图表情、图片查看、红包/朋友圈、小组等功能。...支持编译多端:h5+小程序+app端 ,效果图如下: 未标题-1.png 技术实现: 编码/技术:VScode + react/taro/redux/reactNative iconfont图标:阿里字体图标库.../*postcss-pxtransform rn eject enable*/ /*postcss-pxtransform rn eject disable*/ taro滚动聊天消息底部 在taro中实现聊天消息滚动底部也需要兼容处理...,由于RN端不支持 createSelectorQuery 360截图20191214143339020.png // 滚动至聊天底部 scrollMsgBottom = () => { let...好了,基于taro聊天实例项目这里就介绍完了,希望能有些帮助!!

3.7K80

React Native学习笔记(三)—— 样式、布局与核心组件

Watchman用于监控文件变化,辅助实现工程修改所见即所得 ├── yarn.lock # RN生成,Yarn是node包管理器,yarn.lock文件使程序在不同的机器上同样的方式安装依赖...由于 React Native 组件就是对原生视图的封装,因此使用 React Native 编写的应用外观、感觉和性能与其他任何原生应用一样。我们将这些平台支持的组件称为原生组件。...和SafeAreaView ScrollView是一个通用的可滚动的容器,你可以在其中放入多个组件和视图,而且这些组件并不需要是同类型的。...ScrollView不仅可以垂直滚动(默认),还能水平滚动(通过horizontal属性来设置)。...拉动刷新。 滚动加载。

13.5K31

Android ScrollView监听滑动到顶部和底部的两种方式(你可能不知道的细节)

做一些复杂动画的时候,需要动态判断当前的ScrollView是否滚动底部或者顶部 2....ScrollView滚动到顶部或者底部时主动触发一些操作(典型的就是滚动底部触发自动加载操作) 两种方式: 1. onScrollChanged方式,自己计算 2. onOverScrolled使用系统计算的结果...,api >= 9才支持 可能忽视的细节1: 如果是手势滑动,上面两种方式都对,但是如果是调用ScrollView的smoothScrollTo和scrollTo方法来滚动的话, 只有onScrollChanged...; /** * 监听ScrollView滚动到顶部或者底部做相关事件拦截 */ public class SmartScrollView extends ScrollView { private...手动滑动到底部的情况--->两种方式都监听到了 ? 2. 手动滑动到顶部的情况--->两种方式都监听到了 ? 3.

3.3K70

Android 控制ScrollView滚动的实例详解

Android 控制ScrollView滚动的实例详解 在开发中,我们经常需要更新列表,并将列表拉倒最底部,比如发表微博,聊天界面等等, 这里有两种办法,第一种,使用scrollTo(): public...; if (offset < 0) { offset = 0; } scroll.scrollTo(0, offset); } }); } 第一种实现相对比较麻烦,更推荐使用第二种方式...,使用fullScrol() 下面我们看一下这个函数: scrollView.fullScroll(ScrollView.FOCUS_DOWN);滚动底部 scrollView.fullScroll...(ScrollView.FOCUS_UP);滚动到顶部 需要注意的是,该方法不能直接被调用因为Android很多函数都是基于消息队列来同步,所以需要一部操作,addView完之后,不等于马上就会显示,而是在队列中等待处理...(ScrollView.FOCUS_DOWN); } }); 如有疑问请留言或者本站社区交流讨论,感谢阅读,希望通过本文能帮助大家,谢谢大家对本站的支持!

88421

Taro3.2 适配 React Native 之运行时架构详解

Taro3 的 React 代码可以方便的扩展 React Native 端。...ScrollView 包含对应的页面组件,实现对页面函数的支持 onPageScroll, 通过监听 ScrollView 的 onScroll 方法实现 onReachBottom, 监听页面滚动动画结束函数...onMomentumScrollEnd ,来判断当前的离底部高度,最终来触发该函数 onPullDownRresh, 当enablePullDownRresh为 true 时,开启下拉刷新,通过封装...Navigation 导航 获取到路由参数,返回到 router 对象中,目前暂不支持 onReady 等生命周期方法 原生 React Native 应用支持 有开发者提到,对于目前已经存在的...关于路由统一处理,Taro React Native 的路由是基于页面的配置,封装的React Navigation的方案,与现有业务的路由结合,入口仍然按照原来的方式,Taro 页面路由可自行加入,完成路由的处理

2.4K30

【Hybrid开发高级系列】ReactNative(七) —— RN组件专题

navigationBar节点型         可选的方式提供一个能够存留在场景之间转换的导航栏 navigator对象型         可选的方式从父导航器提供navigator对象 onDidFocus...3.4.1 Props alwaysBounceHorizontal 布尔型         当为真时,滚动视图到达内容底部时,水平反弹,即使该内容小于滚动视图。...alwaysBounceVertical 布尔型         当为真时,滚动视图到达内容底部时,垂直反弹,即使该内容小于滚动视图。...automaticallyAdjustContentInsets 布尔型 bounces 布尔型         当为真时,当滚动视图到达内容底部时,反弹,如果内容比滚动视图是大,那么滚动视图沿着轴滚动方向反...风格的继承只需要在原生文本内 部进行编码,不需要泄露给其他文本或者是系统本身。 3.8 文本输入         通过键盘将文本输入应用程序的一个基本的组件。

38940

Android ScrollView粘性头部代码分享

逻辑是当外部的ScrollView没有滑到底部的时候,往上滑动的时候,是滑动外部的ScrollView,当外部的ScrollView到达底部的时候,我们再网上滑,就是滑动内部的列表了,另外在左右滑动的时候...5.0.0.3版本修复当有底部有操作栏的时候,界面的滚动出现错乱的问题。...6.任何控件的使用我们最好都知道它的实现方式,所以在这里简单介绍下这款控件的设计思路(ChildScrollView,ChildRecyclerView,ChildWebView下面的都称为子ScrollView...如下,我列了表格: 父ScrollVIewScrollView 手势滑动方向 滑动事件交由哪个view控制 不在底部顶部向上父ScrollView 不在底部顶部向下父ScrollView 底部不在顶部向上子...ScrollView 底部不在顶部向下子ScrollView 底部顶部向下父ScrollView 底部顶部向上子ScrollView 在这里当父ScrollView不在底部的时候,不会出现子ScrollView

1.4K20
领券