react-native - react native : how to apply shadow and borderRadius to a View?

标签 react-native shadow

有没有办法将 shadowborderRadius 应用到 View 组件,阴影在圆角后面?

目前,您必须设置 overflow: 'hidden' 才能使 borderRadius 工作,但这样做会消除阴影。

它显然是 React Native 中的 an old and known issue,在不久的将来可能不会被修复。本期提出了一种解决方法,将两个View叠加,但没有给出代码示例。

任何人都可以给出这个建议解决方案的代码示例吗?它会跟随圆角吗(我怀疑)?

是否有带有native binding voodoo doing the trick的软件包?

还有其他解决方案吗?

我已经尝试过 this question 的解决方案,但它对 View 不起作用,borderRadius Prop 不起作用并触发警告,建议将其嵌套在 style Prop 中。

最佳答案

您可以使用 this tool 为 android 和 iOS 生成阴影参数。
诀窍是制作两个 View ,一个用于具有透明背景的阴影,另一个用于内容本身,它们都具有相同的 borderRadius,因此基本卡片将如下所示:

import React from 'react';
import {View, StyleSheet, Text} from 'react-native';

export default () => {

return (
 <View style={styles.cardShadow}>
  <View style={styles.cardContainer>
    <Text> Card Content </Text>
  </View>
 </View>
)
}

const styles = StyleSheet.create({
cardShadow: {
 borderRadius: 16,
 backgroundColor: 'transparent',
 shadowColor: '#000',
 shadowOffset: {
   width: 0,
   height: 1,
 },
 shadowOpacity: 0.22,
 shadowRadius: 2.22,
 elevation: 3,
},
cardContainer: {
 backgroundColor: '#fff',
 borderRadius: 16,
 overflow: 'hidden',
},
});
本质上,这就是制作带有阴影和圆角的 View 所需要的,您还可以添加一些边距/填充和 flexbox 来制作漂亮的 float 卡片。

关于react-native - react native : how to apply shadow and borderRadius to a View?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50651924/

相关文章:

react-native - 存储在react-native-fs中的图像不显示

javascript - 使用子数组过滤对象

java - 从父类(super class)访问隐藏变量

ios - 在 uiview 的右侧和底部投下阴影

android - setShadowLayer Android API 差异

javascript - React Native Swift 模块中的回调函数

android - react-native-router-flux 禁用 android 后退按钮返回登录屏幕

javascript - 如何连接 React Native 和 PostgreSQL?

ios - 如何给透明的 UIView 添加阴影?

css - 仅显示阴影的右侧和底部