React Native中Snackbar显示在Bottom Sheet下方的问题求助
Android下替代FullWindowOverlay解决Snackbar与Bottom Sheet层级问题的方案
使用根视图挂载库(如react-native-root-siblings)
这类库支持将组件挂载到应用根视图层级,脱离当前组件树的层级限制,Android和iOS均兼容。将自定义Snackbar通过根视图组件渲染,即可确保其层级高于Bottom Sheet:import RootSiblings from 'react-native-root-siblings'; // 显示自定义Snackbar const snackbarInstance = new RootSiblings( <CustomSnackbar message="提示信息" onClose={() => snackbarInstance.destroy()} /> );调整react-native-actions-sheet层级配置
给Bottom Sheet设置明确的zIndex,同时将Snackbar挂载到App最外层容器(而非Bottom Sheet所在的子组件树),并给Snackbar设置更高的zIndex。Android上zIndex的生效依赖组件挂载层级,确保Snackbar的父容器层级足够高即可解决遮挡问题。改用原生Snackbar实现
直接调用Android原生Snackbar(可通过react-native-snackbar库快速实现),原生Snackbar的系统层级默认高于所有应用内弹窗,不会被Bottom Sheet遮挡:import Snackbar from 'react-native-snackbar'; Snackbar.show({ text: '操作完成', duration: Snackbar.LENGTH_SHORT, backgroundColor: '#2c2c2c', });
内容的提问来源于stack exchange,提问作者carch
相关产品推荐
相关产品推荐

