React Native Flexbox 横向调整
React Native Flexbox adjustment for landscape orientation
我正在为 React Native 应用程序制作一些 UI 元素。
我需要这些元素在横向和纵向方向上都能工作。
我使用 Flexbox 来组织元素,在纵向模式下看起来不错,但是当我切换到横向模式时,我得到的东西看起来像这样
,我认为这是由于 phone 的尺寸,因此在切换方向时 flexbox 被改变
我只是想知道处理这种情况的最佳方法是什么,我已经看到一些应用程序根据设备的方向呈现不同的代码,但我希望找到一个解决方案,而不是需要那么多努力
1- 你可以使用 useWindowDimensions 钩子,当我们在横向和纵向模式之间切换时,它会自动计算宽度和高度。
const {width, height} = useWindowDimensions();
2- 然后,你可以设置一个布尔变量来检测你是否处于横向
const isLandscapeMode = 宽度 > 高度?真:假;
3- 现在,您可以根据 isLandscapeMode 变量
在样式之间切换
如果你不喜欢内联样式,你也可以这样做
我正在为 React Native 应用程序制作一些 UI 元素。 我需要这些元素在横向和纵向方向上都能工作。
我使用 Flexbox 来组织元素,在纵向模式下看起来不错,但是当我切换到横向模式时,我得到的东西看起来像这样
我只是想知道处理这种情况的最佳方法是什么,我已经看到一些应用程序根据设备的方向呈现不同的代码,但我希望找到一个解决方案,而不是需要那么多努力
1- 你可以使用 useWindowDimensions 钩子,当我们在横向和纵向模式之间切换时,它会自动计算宽度和高度。
const {width, height} = useWindowDimensions();
2- 然后,你可以设置一个布尔变量来检测你是否处于横向
const isLandscapeMode = 宽度 > 高度?真:假;
3- 现在,您可以根据 isLandscapeMode 变量
在样式之间切换如果你不喜欢内联样式,你也可以这样做