#css #react-native
#css #react-native
Вопрос:
У меня есть кнопка входа, и я хотел бы разместить текст для входа в систему в центре кнопки, а изображение (правильно его масштабируя) — на правом краю кнопки, подальше от текста.
В настоящее время я использую значок из библиотеки векторных значков следующим образом:
<TouchableOpacity style={styles.buttonLoginTouchable} onPress={this.loginUser.bind(this)}>
<View style={{ flexDirection: 'row' }}>
<Text style={{ color: '#ffffff', fontWeight: '700', paddingLeft: '46%' }}>Login</Text>
<Icon name="arrow-right" color='#fff' size={15} style={{ paddingLeft: '33%' }} />
</View>
</TouchableOpacity>
Что, вероятно, также не лучший способ сделать это. Теперь я хотел бы заменить значок изображением, поэтому я написал вместо этого следующий код:
<TouchableOpacity style={styles.buttonLoginTouchable} onPress={this.loginUser.bind(this)}>
<View style={{ flexDirection: 'row' }}>
<Text style={{ color: '#ffffff', fontWeight: '700', flex: 0.9 }}>Login</Text>
<Image source={require('../../common/arrow.png')} resizeMode='contain' style={{ height: 10 }} />
</View>
</TouchableOpacity>
Таким образом, изображение масштабируется и каким-то образом размещается справа, но оно больше не выровнено по горизонтали (и я не могу понять почему).
Кто-нибудь знает лучший способ добиться нужного мне стиля?
Комментарии:
1.
flex:1
Поможет<Text style={{flex:1,....}}...
добавить в style и удалить отступы…2. @Ponleu Я модифицировал код с помощью flex (посмотрите на мою правку), и это, безусловно, выглядит лучше, но моя стрелка все еще не выровнена по вертикали.
3. Измените вид на ` <View style={{ flexDirection: ‘row’, justifyContent : ‘center’}}>
Ответ №1:
используйте это следующим образом:
<TouchableOpacity style={{flexDirection:"row",alignItems:'center',justifyContent:'center'}}>
<Text style={{flex:.8}}>Login</Text>
<Image source={require('../../common/arrow.png')} resizeMode='contain' style={{flex:.2 }} />
</TouchableOpacity>
Ответ №2:
Смотрите приведенный Ниже простой пример добавления изображения в компонент touchableopacity в react native. Это очень просто, вам нужно обернуть компонент изображения внутри компонента touchableopacity.
<TouchableOpacity activeOpacity = { .5 } onPress={ this.callFun }>
<Image source={require('./images/sample_image_button.png')} style = {styles.ImagesStyle} />
</TouchableOpacity>
Комментарии:
1. Пожалуйста, прочитайте описание вопроса, а не только сам вопрос.