我使用的是React Native,当我引入ScrollView时,我很难保持元素的垂直居中.为了演示,我用React Native Playerd创建了3个应用程序.所有示例都有两页,可以通过点击蓝色按钮进行切换.

Example 1:

第一个示例显示了第2页上垂直居中的块.这是因为容器应用了以下样式:

flex: 1,
flexDirection: 'column',
justifyContent: 'center',

https://rnplay.org/apps/lb5wSQ

然而,一旦切换到第2页,就会出现问题,因为页面的整个内容都不适合,所以我们需要ScrollView.

Example 2

在本例中,我将所有内容都包装在ScrollView中.这允许第2页滚动,但现在我失go 了第1页的垂直居中.

https://rnplay.org/apps/DCgOgA

Example 3

为了恢复第一页的垂直居中,我将flex: 1应用于ScrollView的contentContainerStyle.这修复了第1页的垂直居中,但我无法再向下滚动到第2页的底部.

https://rnplay.org/apps/LSgbog

我怎样才能解决这个问题,使我在第1页上的元素垂直居中,但仍然让ScrollView在第2页上滚动到底?

推荐答案

我用flexGrow而不是flex解决了这个问题

<ScrollView contentContainerStyle={{ flexGrow: 1, justifyContent: 'center' }}>

这会使内容容器拉伸以填充ScrollView,但不会限制最大高度,因此当内容扩展ScrollView的边界时,仍然可以正确滚动

React-native相关问答推荐

复制__自持props

如何在Reaction Native DrawerNavigation中添加注销功能

哪个版本的@stripe/stripe-react-native 模块支持 react native 0.62.0 typscript 模板?

我们应该在 react-native 移动应用程序中使用哪个图标库

PanResponder 在第二次拖动时将 Animated.View 捕捉回原始位置

React Native Expo - 不再支持 Node.js 版本 11.13.0

如何在 React Native 中测量我的应用程序的数据使用情况?

react-native 中的layout-only view removal优化是什么?

由于依赖关系,在 run-android 上构建失败

如何使用 InteractionManager.runAfterInteractions 使导航器过渡更快

React-Native:显示加载屏幕直到加载 webview

api.get(...).then(...).catch(...).finally 不是函数

React Native - NSNumber 无法转换为 NSString

如何在 react-native 上自动聚焦下一个 TextInput

没有找到 `React-fishhook` 的 podspec

自定义标签栏react Navigation 5

等待模块失效的超时

React Native 发送短信

如何在android studio中导入react native元素

未找到 React/RCTBridgeDelegate.h' 文件