边框半径按钮问题 react-native-elements
2020-04-23
3329
您能帮我解决 React Native Elements 库中按钮边框半径的问题吗?
我正在为按钮添加边框半径,但其不透明度仍然是矩形,我不明白为什么。
https://github.com/react-native-elements/react-native-elements/issues/2324
2个回答
在 ReactNative: 0.65、Elements: 3.4.2 和 API 29 中,我仍然遇到这种情况,但我找到了一个解决方案,在 View 上设置 overflow:'hidden',如下所示:
<View style={{
width:"100%",
borderRadius: 30,
overflow: 'hidden'
}}>
<Button
title="Login"
type="solid"
buttonStyle={{borderRadius: 30}}
/>
</View>
Marco A. de Lima
2021-08-20
我发现使用 RN Elements 中的
buttonStyle
可以完成工作而无需添加额外的视图。
按钮样式表
BUTTON_STYLES
:
就我而言,我在单独的样式表中添加了
borderRadius
,并在我的按钮组件中引用了它。
export const BUTTON_STYLES = StyleSheet.create({
buttonStyle: {
width: 'auto',
height: 50,
maxHeight: 50,
maxWidth: 350,
borderColor: 'black',
borderWidth: 1,
},
titlePropsStyle: {
justifyContent: "center",
alignItems: "center",
fontWeight: "normal"
},
})
可重复使用的按钮组件
下面是我使用 React Native Element 组件中的按钮创建的可重复使用的
ButtonComponent
的完整代码,并确保它应用于
buttonStyles
属性:
import React from 'react';
import { Button } from '@rneui/base';
import FONTS from '@app/design/theme/fonts.theme';
import { BASE_COLORS } from '@app/design/theme/colors.theme';
import { BUTTON_STYLES } from './Button.styles';
import { IButtonComponent } from './Button.types';
export const ButtonComponent = ({
variant = 'primary',
label,
disabled = false,
onPress,
}: IButtonComponent) => {
const { titlePropsStyle, buttonStyle } = BUTTON_STYLES;
const buttonColorByVariant = variant === 'primary' ? BASE_COLORS.taekusBlack : BASE_COLORS.taekusWhite;
const labelColorBtVariant = variant === 'primary' ? BASE_COLORS.taekusWhite : BASE_COLORS.taekusBlack;
return (
<Button
title={label && label}
onPress={(e) => onPress(e)}
titleProps={{
style: {
...titlePropsStyle,
color: labelColorBtVariant
}
}}
titleStyle={{ fontFamily: FONTS.regular }}
buttonStyle={buttonStyle} // HERE it is referenced
disabled={disabled}
color={buttonColorByVariant}
/>
);
};
按钮的输出如下:
iOS:
Android:
Sayuri Mizuguchi
2023-09-21