Я пытаюсь понять, почему приведенные ниже макеты работают по-разному.
Может кто-нибудь объяснить, как происходит внутренний процесс макета, с точки зрения правил? И почему приведенные ниже примеры ведут себя по-разному. Кроме того, чтобы просто сказать, что это так.
Пример 1:
return (
<View style = {{borderWidth : 1, borderColor : 'red'}}>
<View style = {{borderWidth : 1, borderColor : 'black'}}>
<Text>TestText</Text>
</View>
</View>
)
Это отображает красный прямоугольник вокруг черного прямоугольника вокруг текста. Это означает, что View изменяется в зависимости от его содержимого. внутреннее представление изменяет размеры, чтобы рассмотреть текст, внешнее представление рассматривает внутреннее представление (которое уже учло внутренний текст, чтобы определить его размеры), следовательно, все соответствует ожиданиям.
Example2:
return (
<View style = {{borderWidth : 1, borderColor : 'red'}}>
<View style = {{flex:1,borderWidth : 1, borderColor : 'black'}}>
<Text>TestText</Text>
</View>
</View>
)
текст теперь выходит за пределы обоих видов. Внутренний вид все еще лежит внутри внешнего вида.
Теперь я попробовал немного другой вариант:
Пример 3:
return <View style = {{borderWidth:1, borderColor:'red', height:10}}>
<View style = {{flex:1, borderWidth:1, borderColor:'black'}}>
<Text>HelloWorld</Text>
</View>
</View>
Этот рендеринг немного лучше, т.е. По крайней мере, текст начинается внутри обоих представлений. Но все же не так, как ожидалось.
Вопросы, которые у меня есть:
1) в случае № 2 выше, Почему текст выходит за пределы обоих представлений? В то время как внутренний вид все еще остается внутри внешнего?
Может ли какой-либо контент когда-либо go выходить за пределы родительского представления? Разве родительский View не должен расширяться, чтобы содержать его, если мы не предоставили ему определенные c размеры?
2) В случае № 3 все ведет себя немного, как и ожидалось .. Текст находится в представлениях несколько, но все еще переполняется ..
3) Как происходит это рендеринг внутри ReactNative внутри и как он определяет эффективную высоту этих представлений выше?