reactjs - React Native - 模态 - 动态最大高度
问题描述
我在视图中使用模式 - 它包含一个表单。表单比视口长 - 因此,内容占据了页面的高度并滚动到视图之外。
谁能建议动态高度的最佳方法?
目前我正在使用以下方法,但如果手机方向切换则不起作用,我确定必须有更好的解决方案?
heightScreen = () => {
return Dimensions.get('window').height - 150;
}
<Modal
isVisible={this.props.showModal}
animationInTiming={500}
backdropColor={'#f79431'}
style={{ marginVertical:50, maxHeight: this.heightScreen()}}
>
解决方案
import {useEffect, useState} from 'react';
import {Dimensions} from 'react-native';
export const useOrientation = () => {
const [orientation, setOrientation] = useState("PORTRAIT");
useEffect(() => {
Dimensions.addEventListener('change', ({ window:{ width, height } }) => {
setOrientation(width < height ? "PORTRAIT" : "LANDSCAPE")
})
}, []);
return orientation;
}
您可以将此函数添加为帮助检测方向(纵向/横向)并基于此应用正确的高度。
推荐阅读
- c# - DelegateCommand async await vs Task.Run UI 锁定
- paraview - 如何在 Paraview 中测量两个向量之间的角度
- javascript - 节点:HTTPS 服务器停止工作并出现 EADDRINUSE 错误
- c - 使用 #define 和 # 进行字符串化以将另一个宏常量转换为字符串
- python-3.x - 在曲线上查找坐标
- python - Scapy 库给出错误 ARP 谁有?说?
- javascript - 过滤后的产品不在反应中重新渲染,而是在状态中重新渲染
- python - Python中的字符串菱形图案
- java - 从 android studio 的选项卡式活动中的片段与 sqlite 数据库的连接
- javascript - 如何迭代javascript api调用以通过分页从服务器获取数据