javascript - React Native:当其他视图不存在时,使视图占据整个屏幕
问题描述
这似乎是一个基本问题,但我似乎无法弄清楚或正确地对此进行搜索。我有一个View
其他两个视图,其中一个有时是隐藏的。所以组件看起来像这样:
function MyComponent (props) {
return (
<View style={{ flex: 1 }}>
{
props.showButtonView
? (
<View style={{ flex: ??? }}>
<Button title='do something' onPress={() => console.warn('doSomethign)} />
</View>
)
: null
}
<View style={{ flex: ?? }}>
<Stuff/>
</View>
</View>
)
}
现在,我要做的是让组件在不存在Stuff
时覆盖整个屏幕。Button
但是,如果props.showButtonView
是真的,并且我们确实希望看到视图,Button
我只想看到顶部的按钮,然后剩下的就是Stuff
组件中的任何内容。我该怎么做?它是基于弹性数字吗?
另外,您可能想知道为什么我首先需要将这两个分成单独的视图,原因是Stuff
组件中还有其他不相关的东西覆盖了按钮并且不允许我单击它。无论如何,长话短说,View
对于这种情况,两者的分离是强制性的。
解决方案
这两个地方的 flex 都应该是 1。
Flex:1表示它将在 if 之后占用整个可用空间。因此,按钮是否放置在那里并不重要。
当props.showButtonView
为真时,按钮位于顶部,然后放置您的东西。
否则,
当props.showButtonView
为假时,按钮渲染代码将不会被执行,然后内容视图将遍布您的
试试下面的代码props.showButtonView === true
function MyComponent (props) {
return (
<View style={{ flex: 1 }}>
{
props.showButtonView
? (
<View style={{ width: '100%' }}>
<Button title='do something' onPress={() => console.warn('doSomethign)} />
</View>
)
: null
}
<View style={{ flex: 1 }}>
<Stuff/>
</View>
</View>
)
}
推荐阅读
- android - SignalR 协商方法有时在 24 小时内循环调用
- git - 将 git 与 ssh 一起使用时的问题
- puppet - Puppet:同时创建文件和符号链接的循环
- javascript - 在导航到新页面之前检查用户身份验证 ID 是否存在于 firebase 数据库中
- excel - 使用 CountIf 条件扩展现有 VBA 代码
- networking - 可以 ping IP 但无法 ping 主机名 - 间歇性问题
- php - php中的array_merge问题
- python - 如何为多个 matplotlib 绘图使用相同的 NavigationToolbar2Tk
- c# - Unity 自定义编辑器预制件显示修改后的值
- asp.net - 编辑按钮未显示在我的 ASPxGridView 中