React Native Border Radius с цветом фона


100

В 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
Ивана Черных

Нет, к сожалению, это не сработало
Chipe

в какой среде вы тестируете? ios или android?
Иван Черных

Ответы:


158

Попробуйте переместить стиль кнопки в 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

80

Вы должны добавить overflow: hidden в свои стили:

Js:

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

Стили:

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

3
overflow: 'hidden'работал для меня даже не среагировать-родную кнопку
Evan Široký

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

2
это то что я хотел! (не отмеченный)
Жюльен Малидж

2

Никогда не передавайте 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.