0.14.0 • Published 5 months ago

@sdcx/nested-scroll v0.14.0

Weekly downloads
-
License
MIT
Repository
github
Last release
5 months ago

NestedScrollView

NestedScrollView 是一个 React Native 原生 UI 组件。

主要用来实现如下结构的视图:

README-2023-10-30-15-06-11

最外层是一个可纵向滚动的视图, 也就是我们的 NestedScrollView, 它的子组件往往由一个头部和一个可横向滚动的视图组成。

这个可横向滚动的视图在 React Native 中通常是设置了 horizontal 属性的 ScrollView,也可以是 PagerView

最里层是若干也可以纵向滚动的视图,譬如 ScrollViewFlashListWebView 等等。

NestedScrollView 的作用是协调最里层和最外层可滚动视图之间的(纵向)滚动,使得滚动体验更加流畅。

Installation

yarn add @sdcx/nested-scroll
# &
pod install

Usage

NestedScrollView 在使用上比较简单

import { NestedScrollView, NestedScrollViewHeader } from '@sdcx/nested-scroll'

const App = () => {
  return (
    <NestedScrollView>
      <NestedScrollViewHeader stickyHeaderBeginIndex={1}>
        <Image />
        <TabBar />
      </NestedScrollViewHeader>
      <PagerView>
        <FlatList nestedScrollEnabled />
        <ScrollView nestedScrollEnabled />
        <WebView />
      </PagerView>
    </NestedScrollView>
  )
}

:exclamation: :exclamation: :exclamation: Android 是基于 NestedScrolling API 实现的。

:exclamation: :exclamation: :exclamation:

API

NestedScrollView

NestedScrollView 只有两个属于自己的属性

  • bounces:仅限于 iOS 平台,用于设置 NestedScrollView 是否有弹性,默认为 false。一旦设置为 true,最内层可滚动视图将失去弹性。

  • contentContainerStyle:仅限于 Android 平台,用于设置 NestedScrollView 的 contentView 的样式。

NestedScrollViewHeader

  • stickyHeaderBeginIndex,它表示从第几个子组件开始,子组件将会被固定在顶部。

  • stickyHeight,它表示 header 多高的区域将会被固定在顶部,优先级高于 stickyHeaderBeginIndex

  • onScroll, 是一个回调函数,可用于实现头部视图的视差效果。

    type OnScroll = (event: {
      nativeEvent: {
        contentOffset: {
          x: number
          y: number
        }
      }
    }) => void
0.10.0

8 months ago

0.11.0

7 months ago

0.9.0

8 months ago

0.12.0

7 months ago

0.8.0

9 months ago

0.13.0

6 months ago

0.14.0

5 months ago

0.5.0

9 months ago

0.4.0

10 months ago

0.7.0

9 months ago

0.6.0

9 months ago

0.3.0

1 year ago

0.2.0

1 year ago

0.1.0

1 year ago