callstack / callstack/react-native-pager-view

☂️ Pager View Improvements

未关闭
#673 14 条评论 24 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
TypeScript
星标
3.4k
派生
476
平均合并
10 天 21 小时
30 天内合并 PR
2

描述

### Intro

It is been a while since I am maintaining the `react-native-pager-view`. Previously it was part of the RN core, but then it has been extracted into a separate package. It has used 2 versions of ViewPager (v1, v2) and UIPageView. I tried to fix all issues, but some of them required some workarounds that were not stable enough. Those workarounds created other issues, hence other workarounds were used to fix that. To be honest, I was a little bit exhausted from it, hence together with @krozniata and @okwasniewski decided to build those components from the scratch

### Next branch
@alpha0010 did a great job by implementing the `LazyViewPager` component. We released his changes into the `next` branch and we had the plan to merge it into the main branch. But we did some internal tests on real applications and in some cases, it did not work well. Internally we used another workaround to achieve the lazy effect. Moreover, we did not want to add additional complexity, when it did not bring more benefits and would add additional bugs to fix. With new architecture implementing a lazy approach should be much easier. Unfortunately, we won’t merge the next branch into the main. We will implement a lazy approach using a new architecture. If you would like to maintain `LazyViewPager`, feel free to make a fork

### New architecture support

Meta has released a new architecture called fabric. In this library, we would like to focus first on the new architecture. After that, we will evaluate, if it would be worth migrating a new solution to the old arch (Right now it is hard to estimate it based on a priori knowledge)

### Motivation

We would like to have more control over native components to easily fix issues or add new features. Right now, those components are black boxes, which are hard to maintain. Moreover, `UIPageViewController` is not maintained anymore and is not used in the iOS world. Unfortunately, we cannot use `UICollectionView`, because it does not work well in the RN world.

The same thing refers `RecyclerView` component for Android. The currently used `ViewPager2` component on Android brought more issues than benefits since it uses the earlier-mentioned `RecyclerView`.

贡献指南

打开贡献指南

调研方向

未指定任何文件、测试或具体入口点。首先根据 Fabric 要求审查现有的 Android ViewPager2/RecyclerView 和 iOS UIPageViewController 集成;除了替换当前的原生组件并增强对它们的控制之外,未定义完成标准。

由索引模型根据 Issue 内容生成。

评估

技术栈
android, ios, react-native, typescript
领域
mobile-dev
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
停滞
描述清晰度
需要澄清
新手友好度
20/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。