如何仅对1个角(本机)使用边界半径?


76

如何在React Native中仅对1个角使用边界半径?

我有一个模态窗口

http://f1.s.qip.ru/etSMz5YP.png

如您所见,下角没有圆角,当我使用backgroundColor作为按钮时会发生这种情况。我试图将隐藏的溢出设置为模式包装器,但这对我没有帮助。现在,我想对按钮使用边框半径(仅适用于1个角)。

我的代码http://jsbin.com/sexeputuqe/edit?html,css


我不知道reactjs,但是您可以使用border-top/bottom-left/right-radiusCSS属性(例如border-bottom-right-radius: 5px
Yoplaboom

3
较大的UI问题:“按取消将XYZ”,但没有取消按钮。另外,“是”似乎对应于破坏性动作。我强烈建议将按钮标签更改为“丢弃”(也应在左侧)和“保留”。
Niet the Dark Absol

您可以共享元素的代码和样式吗?我想我可能知道这里发生了什么。谢谢。
Nader Dabit


7
对不起,但是为了获得想要的效果,您可以overflow: 'hidden'在按钮的父视图中使用
Vincent Joy,

Answers:


253

您是否已经尝试以下方法?
- borderBottomLeftRadius:数字
- borderBottomRightRadius:数字
- borderTopLeftRadius:数字
- borderTopRightRadius:数字

另外,您可以在视图组件docs中找到更多信息。


3
是的,我正在尝试,但是没有效果。
Maksim 2016年

1
在您的示例中,如果两个按钮位于问题框中,则需要在按钮和容器上设置边框半径。如果没有,那么应该使用borderBottomLeftRadius和borderBottomRightRadius来解决问题。类似于borderBottomLeftRadius: 5“否”按钮和borderBottomRightRadius: 5“是”按钮上的内容。如果这不起作用,请向我们提供您的代码示例,以便我们检查是否有其他干扰。
G. Hamaide'2

7
在iOS上也不适合我。只会borderRadius起作用,但会在所有角落应用半径
Kevin Amiranoff

8
@kevinImage组件的iOS版本会忽略特定拐角的半径设置。在某些情况下,您可以使用负边距“遮盖”您不想舍入的角。
乔什(Josh)

15
尝试放入overflow:hidden您的视图(或文本)。它应该工作。
哈基拉特·萨卢嘉(Harkirat Saluja)

19

在您的样式中添加以下属性:

  • borderBottomLeftRadius: number
  • borderBottomRightRadius: number
  • borderTopLeftRadius: number
  • borderTopRightRadius: number

这对我有用。

谢谢


在答案中添加更多说明。
Vivek Kumar

@DanielJosePadillaPeña,您找到任何解决方案了吗?
Manspof

硬编码,添加没有角的其他图像,隐藏半径。这不是一个好方法,但是仍然找到了另一种解决方案。
丹尼尔·何塞·帕迪拉·佩尼亚

当我添加溢出内容时,它对我有用:“隐藏”属性
Piotr Badura

10

假设仅为Image标签的左上角和左下角设置了半径。

<View style={styles.imgBox}>
  <Image source={{ uri: 'your image url' }} style={styles.img} />
</View>

 const styles = EStyleSheet.create({
 imgBox: {
       width: px(72),
       height: px(72),
       borderBottomLeftRadius: 2,
       borderTopLeftRadius: 2,
       overflow: 'hidden',
 },
 img: {
       width: px(72),
       height: px(72),
  },
})

对于ios来说看起来不错。


不完整-您可以添加所需的npm软件包和缺少的import语句吗?
ssc
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.