背景色でネイティブのボーダー半径を反応させる


96

React Nativeでは、 borderRadiusは機能していますが、ボタンに指定された背景色は正方形のままです。ここで何が起こっているのですか?

JS

<TouchableHighlight
  style={styles.submit}
  onPress={() => this.submitSuggestion(this.props)}
  underlayColor='#fff'>
    <Text style={[this.getFontSize(),styles.submitText]}>Submit</Text>
</TouchableHighlight>

スタイル

...
submit:{
    marginRight:40,
    marginLeft:40,
    marginTop:10,
},
submitText:{
    paddingTop:20,
    paddingBottom:20,
    color:'#fff',
    textAlign:'center',
    backgroundColor:'#68a0cf',
    borderRadius: 10,
    borderWidth: 1,
    borderColor: '#fff'
},
...

ここに画像の説明を入力してください


ただの推測ですが、borderStyle: 'solid'submitText
Cherniv

いいえ、残念ながら
うまくいき

どの環境でテストしていますか?iOSまたはandroid?
Cherniv

回答:


155

ボタンのスタイルをTouchableHighlightそれ自体に移動してみてください。

スタイル:

  submit:{
    marginRight:40,
    marginLeft:40,
    marginTop:10,
    paddingTop:20,
    paddingBottom:20,
    backgroundColor:'#68a0cf',
    borderRadius:10,
    borderWidth: 1,
    borderColor: '#fff'
  },
  submitText:{
      color:'#fff',
      textAlign:'center',
  }

ボタン(同じ):

<TouchableHighlight
  style={styles.submit}
  onPress={() => this.submitSuggestion(this.props)}
  underlayColor='#fff'>
    <Text style={[this.getFontSize(),styles.submitText]}>Submit</Text>
</TouchableHighlight>

ここに画像の説明を入力してください


2
ありがとう!これpaddingもまた重要な鍵です。
DazChong 2017年

73

あなたのoverflow: hiddenスタイルに追加する必要があります:

Js:

<Button style={styles.submit}>Submit</Button>

スタイル:

submit {
   backgroundColor: '#68a0cf';
   overflow: 'hidden';
}

3
overflow: 'hidden'反応ネイティブボタンがなくても私のために働いた
エヴァンSiroky

2
ありがとう。はい、コンテナにbackgroundColorborderRadiusを置いてoverflow: 'hidden'から、コンテナに追加するとうまくいきました。(また使用していませんreact-native-button。)
David

2
これが私が欲しかったものです!(チェックされたものではありません)
Julien Malige 2017

1

あなたのボーダーラディウスをあなたの<Text />常にまたはあなたの<Text />中にラップすることを決して与えない<View />でください<TouchableOpacity/>

borderRadius on <Text />は、Androidデバイスで完全に動作します。しかし、IOSデバイスでは機能しません。

だから、これをあなたの練習の中で維持して、あなたの<Text/>内側<View/>または上にあなたの内側を包み、<TouchableOpacity/>そしてそれからborderRadiusをそれに<View />または<TouchableOpacity /> 、AndroidおよびIOSデバイスの両方で機能するようにします。

例えば:-

<TouchableOpacity style={{borderRadius: 15}}>
   <Text>Button Text</Text>
</TouchableOpacity>

-ありがとう


0

以下のコード行を適用します。

<TextInput
  style={{ height: 40, width: "95%", borderColor: 'gray', borderWidth: 2, borderRadius: 20,  marginBottom: 20, fontSize: 18, backgroundColor: '#68a0cf' }}
  // Adding hint in TextInput using Placeholder option.
  placeholder=" Enter Your First Name"
  // Making the Under line Transparent.
  underlineColorAndroid="transparent"
/>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.