2016-01-12 18 views
6

Atrybut stylu borderRadius nie zmienia prawidłowo obramowania komponentu.React-natywny: borderRadius nie kwalifikuje komponentu prawnie

Spodziewam się zobaczyć zielone kółko na czerwonym tle bez białych znaków. Zamiast tego widzę to.

enter image description here

class Healthie extends React.Component { 
    render() { 
    return (
     <View style={styles.container}> 
     <Text style={styles.button} /> 
     </View> 
    ); 
    } 
}; 

const styles = StyleSheet.create({ 
    container: { 
    flex: 1, 
    justifyContent: 'center', 
    alignItems: 'center', 
    backgroundColor: 'red', 
    }, 
    button: { 
    backgroundColor: 'green', 
    borderRadius: 50, 
    width: 100, 
    height: 100, 
    textAlign: 'center' 
    } 
}); 

reakcji natywną wersję: 0.17.0.

Odpowiedz

5

Aby uzyskać to, czego szukasz, będziesz musiał owinąć pole tekstowe wewnątrz innego widoku. Widok nie będzie domyślnie na inny kolor BG gdy borderRadius ulega zmianie:

<View style={styles.container}> 
    <View style={styles.button}> 
    <Text style={{ backgroundColor: 'transparent' }}>Text</Text> 
    </View> 
</View> 

const styles = StyleSheet.create({ 
    container: { 
    flex: 1, 
    justifyContent: 'center', 
    alignItems: 'center', 
    backgroundColor: 'red', 
    }, 
    button: { 
    backgroundColor: 'green', 
    borderRadius: 50, 
    width: 100, 
    height: 100, 
    textAlign: 'center', 
    flexDirection:'row', 
    alignItems:'center', 
    justifyContent:'center' 
    } 
}); 

odjazdu this demo.

+1

Udało się! Dzięki! Nawet bez '{{backgroundColor: 'transparent'}}'. –

5

ma potrzeby przycisk lub tekst wewnątrz poglądów zawijać, wystarczy umieścić to w swoim stylu

overflow: hidden 

to działa na mnie

+2

To działa na ios, ale nie na Androida. Przynajmniej od RN 0,25. Poprawną odpowiedzią jest zaakceptowana odpowiedź. –