Автоматическая ширина записи по запросу внутри текста

Как я знаю, native-таблица с реакцией не поддерживает свойство min-width/max-width.

У меня есть вид и текст внутри. Вид в автоматической ширине не изменяет размер по наследованию текстового элемента.

Как исправить эту проблему и сделать ширину представления автоматически заданной с использованием ширины текста?

Мой код:

 <View style={{backgroundColor: '#000000'}}>
      <Text style={{color: '#ffffff'}}>Sample text here</Text>
 </View>

В общем HTML/CSS я бы так понял:

 <div style="background-color: #000; display: inline;">Sample text here</div>

Примечание: flex: 1 на родительском представлении не помогает мне. Текст отображается как

"Sam"
"ple"
"Tex"
"t"

Ответ 1

"alignSelf" делает то же самое, что "display: inline-block" будет иметь общий HTML/CSS, и он отлично работает для меня.

<View style={{backgroundColor: '#000000', alignSelf: 'flex-start' }}>
 <Text style={{color: '#ffffff'}}>
  Sample text here
 </Text>
</View>

Ответ 2

Вы должны попробовать с flex: 1, который позволит использовать поведение flexbox:

<View style={{backgroundColor: '#000000', flex: 1}}>
    <Text style={{color: '#ffffff'}}>Sample text here</Text>
</View>

Ответ 3

Попробуйте этот способ для вашего требования:

Здесь мой рост постоянен, и я увеличиваю ширину на длину текста.

  <View style={{flexDirection: 'row'}}>
    <View style={{
        height: 30, width: 'auto', justifyContent:'center', 
        alignItems: 'center'}}>

        <Text style={{color:'white'}}>Now View will enlarge byitself</Text>

    </View>
  </View>

Для высоты и ширины попробуйте изменить высоту внутри стиля просмотра на "автоматический" полный код ниже:

  <View style={{flexDirection: 'row'}}>
    <View style={{
        height: 'auto', width: 'auto', justifyContent:'center', 
        alignItems: 'center'}}>

        <Text style={{color:'white'}}>Now View will enlarge byitself</Text>

    </View>
  </View>

Также попробуйте добавить отступы к представлению, чтобы правильно расположить текст.

Ответ 4

Это работает с ответом Николаса, если вы не хотите центрировать вид где-либо. В этом случае вы можете добавить представление обёртки вокруг представления, чтобы получить ширину его содержимого, и установить alignItems: 'center'. Как это:

    <View style={{ flex: 1, alignItems: 'center' }}>
        <View style={{ justifyContent: 'center', alignItems: 'center', backgroundColor: 'red' }}>
            <Text>{'Your text is here'}</Text>
        </View>
    </View>

Цвет фона добавлен, чтобы показать размер внутреннего вида