Реагуйте на радіус рідного кордону кольором фону


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

Ні, це, на жаль, не спрацювало
Chipe

в якому середовищі ви тестуєте? ios чи android?
Чернів

Відповіді:


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

73

Ви повинні додати overflow: hiddenдо своїх стилів:

Js:

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

Стилі:

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

3
overflow: 'hidden'працював у мене навіть без реакції-рідної кнопки
Еван Сірокі

2
Дякую. Так, надягання backgroundColorта borderRadiusна контейнер, а потім додавання overflow: 'hidden'до контейнера працювало для мене. (Також не використовується react-native-button.)
Девід,

2
це те, що я хотів! (не перевірений)
Julien Malige

1

Ніколи не давайте borderRadius своєму <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"
/>
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.