#reactjs #react-native #flexbox
#reactjs #react-native #flexbox
Вопрос:
Я использую приведенный ниже код:
import React from 'react';
import { Text, View } from 'react-native';
export default class App extends React.Component {
render() {
return (
<View style={{paddingTop:30,flexDirection:'row',}}>
<View style={{backgroundColor:'red',width:50,height:50}}><Text>1</Text></View>
<View style={{backgroundColor:'green',width:50,height:50}}><Text>2</Text></View>
</View>
);
}
}
и в результате получается:
Я думаю, что правильный результат должен быть:
почему результат не такой, каким я его ожидаю?
Комментарии:
1. у вас есть
rtl
поддержка вашего приложения?2. Я не использовал, я использовал другой код, возможно, один из них поддерживает rtl, как я могу его найти?
3. оформить заказ в файле AndroidManifest
android:supportsRtl="true"
4. Я ищу supportsRtl в своей программе, но ничего не могу найти
5. Если я использую ваш код, я правильно получаю красный квадрат 1 слева и зеленый квадрат 2 справа. Возможно, у вас здесь проблема с RTL (или flexDirection)… Вы можете проверить это, написав пару слов в компоненте <Text> и посмотреть, как это отображается…
Ответ №1:
используйте flex
вместо height и width вот так:
import React from 'react';
import { Text, View } from 'react-native';
export default class App extends React.Component {
render() {
return (
<View style={{paddingTop:30,flexDirection:'row',}}>
<View style={{backgroundColor:'red',flex:.5}}><Text>1</Text></View>
<View style={{backgroundColor:'green',flex:.5}><Text>2</Text></View>
</View>
);
}
}
вы можете настроить flex по своему усмотрению. это всего лишь пример…
Ответ №2:
Я нахожу проблему, это из-за местоположения, заданного в Genymotion, я использую приведенный ниже код в App.js и решить проблему
import {I18nManager} from 'react-native'
I18nManager.forceRTL(false)