例如,我有一个我想浮动的元素
<View style={{width: 300}}>
<Text style={{backgroundColor: "#DDD"}}>Hello</Text>
</View>
Run Code Online (Sandbox Code Playgroud)
如何Text
浮动/对齐到右边?另外,为什么Text
占据了整个空间View
,而不仅仅是"你好"的空间?
Mar*_*ery 216
为什么Text会占用View的整个空间,而不仅仅是"Hello"的空间?
因为它View
是一个弹性容器,默认情况下是flexDirection: 'column'
和alignItems: 'stretch'
,这意味着它的子节点应该伸展以填充其宽度.
(请注意,每个的文档,即所有的成分发生化学反应原住民是display: 'flex'
在默认情况下,并且display: 'inline'
完全不存在这样的一个默认行为.Text
一个内View
从默认的行为做出反应母语不同span
内的div
在网络上;在后一种情况下,span 不会填充the的宽度,div
因为span
默认情况下a 是内联元素.React Native中没有这样的概念.)
如何将文本浮动/对齐到右边?
float
React Native中不存在该属性,但是您可以使用大量选项(行为稍有不同),这些选项可以让您右对齐文本.以下是我能想到的:
textAlign: 'right'
在Text
元素上使用<View>
<Text style={{textAlign: 'right'}}>Hello, World!</Text>
</View>
Run Code Online (Sandbox Code Playgroud)
(这种方法不会改变Text
填充整个宽度的事实View
;它恰好对齐了文本内部的文本Text
.)
alignSelf: 'flex-end'
上Text
<View>
<Text style={{alignSelf: 'flex-end'}}>Hello, World!</Text>
</View>
Run Code Online (Sandbox Code Playgroud)
这Text
会将元素缩小到保持其内容所需的大小,并将其放置在横向的末尾(默认情况下为水平方向)View
.
alignItems: 'flex-end'
上View
<View style={{alignItems: 'flex-end'}}>
<Text>Hello, World!</Text>
</View>
Run Code Online (Sandbox Code Playgroud)
这相当于设置alignSelf: 'flex-end'
所有View
的孩子.
flexDirection: 'row'
和justifyContent: 'flex-end'
对View
<View style={{flexDirection: 'row', justifyContent: 'flex-end'}}>
<Text>Hello, World!</Text>
</View>
Run Code Online (Sandbox Code Playgroud)
flexDirection: 'row'
将布局的主要方向设置为水平而不是垂直; justifyContent
就像alignItems
,但控制主方向而不是横向的对齐.
flexDirection: 'row'
上View
和marginLeft: 'auto'
上Text
<View style={{flexDirection: 'row'}}>
<Text style={{marginLeft: 'auto'}}>Hello, World!</Text>
</View>
Run Code Online (Sandbox Code Playgroud)
这种方法在Web和真实CSS的上下文中通过/sf/answers/2384466591/进行了演示.
position: 'absolute'
和right: 0
在Text
:<View>
<Text style={{position: 'absolute', right: 0}}>Hello, World!</Text>
</View>
Run Code Online (Sandbox Code Playgroud)
就像在真正的CSS中一样,这需要Text
"流出",意味着它的兄弟姐妹将能够重叠它,它的垂直位置将View
默认位于顶部(尽管你可以明确地设置距离顶部的距离)View
使用top
style属性).
当然,您想要使用的这些不同方法中的哪一种 - 以及它们之间的选择是否有意义 - 将取决于您的具体情况.
goo*_*yun 82
您可以直接指定项目的对齐方式,例如:
textright: {
alignSelf: 'flex-end',
},
Run Code Online (Sandbox Code Playgroud)
Che*_*niv 34
对我来说,设置alignItems
为父母可以做到这一点,例如:
var styles = StyleSheet.create({
container: {
alignItems: 'flex-end'
}
});
Run Code Online (Sandbox Code Playgroud)
eya*_*l83 20
你不应该在React Native中使用浮点数.React Native利用flexbox来处理所有这些事情.
在您的情况下,您可能希望容器具有属性
justifyContent: 'flex-end'
Run Code Online (Sandbox Code Playgroud)
关于占据整个空间的文本,再次,你需要看看你的容器.
这是一个关于flexbox真正精彩指南的链接:Flexbox 完整指南
小智 13
<View style={{ flex: 1, flexDirection: 'row', justifyContent: 'flex-end' }}>
<Text>
Some Text
</Text>
</View>
Run Code Online (Sandbox Code Playgroud)
flexDirection
:如果要水平移动(行)或垂直移动(列)
justifyContent
:你想要移动的方向.
归档时间: |
|
查看次数: |
154906 次 |
最近记录: |