React Native - 定位的绝对视图位于屏幕的其他组件后面
React Native - Positioned absolute view is behind other components of the screen
伙计们。
所以,我正在尝试使用 React Native 制作一个简单的 Select 下拉菜单。我还有另一个代码也能正常工作,但问题出在 Position absolute 中。我试了很多次都没有成功。
问题:
绝对视图在屏幕的其他组件后面。
预期行为:
所有组件上方的绝对视图
有人可以帮助我吗?
这是我对这个问题的简述。
https://snack.expo.dev/@ellyssonmiike/shallow-croissant
谢谢大家
您可以使用 react-native-portalize
库来解决这个问题。 Portalize 基本上是在 Host 组件中渲染 Portal 的内容。
这是 Portalize 实现的点心:https://snack.expo.dev/@truetiem/shallow-croissant
首先你需要安装react-native-portalize
:
yarn add react-native-portalize
然后使用 Host 组件包装您的应用程序:
import {Host} from 'react-native-portalize';
<Host>
// your app content
</Host>
并用 Portal 组件包装您的下拉列表:
import {Portal} from 'react-native-portalize';
<Portal>
<View style={[styles.dropdownMenu, { top: height }]}>
// your dropdown content
</View>
</Portal>
您只需按如下所示对样式表进行一些重新安排:
const styles = StyleSheet.create({
container: {
flex: 1,
zIndex: 10
},
dropdownContainer: {
position: 'absolute',
top: Constants.statusBarHeight,
zIndex:10,
backgroundColor: '#ccc',
width: '100%',
elevation: 10,
},
dropdownMenu: {
flex:1
}
});
您还可以删除项目样式的 {{top: height}}。我认为没有任何必要。
伙计们。
所以,我正在尝试使用 React Native 制作一个简单的 Select 下拉菜单。我还有另一个代码也能正常工作,但问题出在 Position absolute 中。我试了很多次都没有成功。
问题:
绝对视图在屏幕的其他组件后面。
预期行为:
所有组件上方的绝对视图
有人可以帮助我吗?
这是我对这个问题的简述。
https://snack.expo.dev/@ellyssonmiike/shallow-croissant
谢谢大家
您可以使用 react-native-portalize
库来解决这个问题。 Portalize 基本上是在 Host 组件中渲染 Portal 的内容。
这是 Portalize 实现的点心:https://snack.expo.dev/@truetiem/shallow-croissant
首先你需要安装react-native-portalize
:
yarn add react-native-portalize
然后使用 Host 组件包装您的应用程序:
import {Host} from 'react-native-portalize';
<Host>
// your app content
</Host>
并用 Portal 组件包装您的下拉列表:
import {Portal} from 'react-native-portalize';
<Portal>
<View style={[styles.dropdownMenu, { top: height }]}>
// your dropdown content
</View>
</Portal>
您只需按如下所示对样式表进行一些重新安排:
const styles = StyleSheet.create({
container: {
flex: 1,
zIndex: 10
},
dropdownContainer: {
position: 'absolute',
top: Constants.statusBarHeight,
zIndex:10,
backgroundColor: '#ccc',
width: '100%',
elevation: 10,
},
dropdownMenu: {
flex:1
}
});
您还可以删除项目样式的 {{top: height}}。我认为没有任何必要。