四角ではなく丸いエッジを持つ汎用ボタンを作成しました。マイボタンコンポーネントは、次のような次のとおりです。React-native TouchableOpacityボタンはボーダー/ボーダー半径を尊重しません
const Button = ({ onPress, children }) => {
const { buttonStyle, textStyle } = styles;
return (
<TouchableOpacity onPress={onPress} style={buttonStyle}>
<Text style={textStyle}>
{children}
</Text>
</TouchableOpacity>
);
};
const styles = {
textStyle: {
alignSelf: 'center',
color: colors.primaryTeal,
fontSize: 16,
fontWeight: '600',
paddingTop: 10,
paddingBottom: 10,
},
buttonStyle: {
flex: 1,
backgroundColor: colors.whiteText,
marginLeft: 5,
marginRight: 5,
borderRadius: 50
}
};
しかし、それは正方形のままと全くborderRadius
に応答しません。
このようなとして呼び出されています:
<Button onPress={this.onButtonPress.bind(this)}>
Log in
</Button>
は、どのように私はそれがborderRadiusを尊重し、ラウンドエッジを取得するのですか?
(レンダリング)が表示されるログインフォーム
render() {
return (
<Card>
<CardSection>
<Input
placeholder="[email protected]"
label="Email"
value={this.state.email}
onChangeText={email => this.setState({ email })}
/>
</CardSection>
<CardSection>
<Input
secureTextEntry
placeholder="password"
label="Password"
value={this.state.password}
onChangeText={password => this.setState({ password })}
/>
</CardSection>
<View style={styles.btnWrapper}>
<CardSection>
{this.state.loading ?
<Spinner size="small" /> :
<Button onPress={this.onButtonPress.bind(this)}>
Log in
</Button>}
</CardSection>
</View>
<Text style={styles.errorTextStyle} disabled={this.state.error !== null}>
{this.state.error}
</Text>
</Card>
CardSectionコンポーネント:
const CardSection = (props) => {
return (
<View style={styles.containerStyle}>
{props.children}
</View>
);
};
const styles = {
containerStyle: {
borderBottomWidth: 1,
padding: 5,
backgroundColor: '#fff',
justifyContent: 'flex-start',
flexDirection: 'row',
borderColor: '#ddd',
position: 'relative'
}
};
私はCardSectionスタイルをチェックします。 'flex:1'を追加してフルスペースに広げることができます。 – WilomGfx
コンポーネントを追加したばかりですが、見ていただけますか? flex:1を追加すると、すべてが壊れました:P – cbll
@cbll 'CardSection'や' Button'のbackgroundColorを別の色に変更しようとしました。あなたのケースでは両方が白で、おそらく境界が見えません。 –