我正在尝试从一个React原生项目创建一个 Jmeter 板布局。想法是保持Android、iOS和Web的大部分代码相似,只有布局或导航风格会发生变化。但我发现在Web中创建这种类型的布局很容易,但在不重新渲染的情况下使其响应很难。
我已经实现了这一点,通过手动计算窗口的高度和宽度通过以下代码Dimensions.get('window').width Dimensions.get('window').height
并通过eventListener不断更新状态,以便它一次又一次地重新呈现整个页面。Dimensions.addEventListener("change", this.updateScreen);
有没有办法我可以简单地使用一些%值来填充屏幕。现在如果我使用%它挤压到一个孩子的View
大小。我甚至尝试了flex:1
与alignSelf:stretch
,alignItem:stretch
,width:'100%'
等,但没有运气。
有一阵子,我们来谈谈中间那排(附图片)它包含3列。2我想要左和右块(菜单和行动号召)每个都是300 px。现在,如果我在1000 px宽度的显示器上,我的内容块应该是(1000 -(300+300))400 px。如果显示器为1200 px,则内容块将为(1200 -(300+300))600 px。
2条答案
按热度按时间t8e9dugd1#
我希望这不会来得太晚。
这是上面代码的结果。
您根本不需要进行百分比计算;只需将其结构化为2层Flex布局即可。
对于不应拉伸的组件,说明其宽度。对于其余组件,指定弹性值。
如果您坚持使用1层来处理所有问题,那么我们将再次讨论。
干杯干杯干杯
hgncfbus2#
我做这个完全出于同样的原因:
https://www.npmjs.com/package/react-native-animated-layout
它将布局作为输入,并使用屏幕的宽度/高度比来决定要使用的布局。
在每个布局中,使用0和1之间的坐标定义每个屏幕的上、右、下、左。(因为浏览器调整大小会更改每个视图的坐标,而您希望视图保持精确的相对位置。)
注意:此方法对PWA尤其有用。如果需要使用滚动条,它们应位于其中一个视图(可能是"内容"视图)内。