React native 在视图中显示内联和包装的文本组件
我试图显示React native 在视图中显示内联和包装的文本组件,react-native,React Native,我试图显示文本封装在视图内联组件中的组件。对于inline,我的意思是文本应该始终彼此相邻地显示。这是我拥有的最好的“解决方案”: <View style={{ flexDirection: 'row', flexWrap: 'wrap' }}> <View> <Text>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</Text> </View>
文本
封装在视图
内联组件中的组件。对于inline,我的意思是文本应该始终彼此相邻地显示。这是我拥有的最好的“解决方案”:
<View style={{ flexDirection: 'row', flexWrap: 'wrap' }}>
<View>
<Text>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</Text>
</View>
<View>
<Text style={{ fontWeight: 'bold' }}>b</Text>
</View>
<View>
<Text>cccccccccccccccccccccccccccccc</Text>
</View>
{/* Possibly an icon, or text with a different lineheight...*/}
</View>
不幸的是,这不是答案。它在我的用例中不起作用,因为我需要能够显示上标,这似乎只能通过更改行高度来实现,并且我希望能够添加一些内联图标(使用react原生向量图标)
我已经为这个看似简单的问题挣扎了太长时间了,所以终于发出了呼救的声音。有人有主意吗?(如果有一种显示内联上标的方法,那也行,那么我可以嵌套
文本
组件,但我想没有)尝试使用显示:内联块代码>在样式部分您需要将文本彼此插入
<View style={{ flexDirection: 'row' }}>
<Text>aaaaaaaaaaaaaaaaaaaaaaaaaasdadasdadaaaaaaaaaaaaaaaaaaaaaaaa
<Text style={{ fontWeight: 'bold' }}>asdadasdab
<Text>cccccccccccccccccccccccccccccc</Text>
</Text>
</Text>
</View>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
阿斯达达斯达
中交
您的代码缺少flex activator。这将实现以下目的:
<View style={{ flex: 1, flexDirection: 'row'}}>
<Text>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</Text>
<Text style={{ fontWeight: 'bold' }}>b</Text>
<Text>cccccccccccccccccccccccccccccc</Text>
</View>
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
B
中交
您必须指定何时使用FlexBox布局。不幸的是,您的问题不清楚。但这就是我从你的问题中理解的
<View style={{ flex: 1}}>
<Text>aaaaaaaaaaaa</Text>
<View style={{ flexDirection: 'row', justifyContent: "flex-start"}}>
<Text style={{ fontWeight: 'bold' }}>b</Text>
<Text>ccccccccccccccccccc</Text>
</View>
</View>
aaaaaaaaaaaa
B
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
我通过定义多行找到了您的解决方案
export default class App extends React.Component {
render() {
return <View style={styles.container}>
<View ><Text >aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</Text></View>
<View ><Text style={{fontWeight: 'bold'}}>bbbbb</Text></View>
<View ><Text >ccccc</Text></View>
</View>;
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
flexDirection: 'column'
}
});
导出默认类App扩展React.Component{
render(){
返回
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbb
ccccc
;
}
}
const styles=StyleSheet.create({
容器:{
弹性:1,
flexDirection:“列”
}
});
您可以使用下面的代码隐藏溢出文本
export default class App extends React.Component {
constructor(){
super()
this.state = {
mytextvar :'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
maxlimit:50
};
}
render() {
return <View style={styles.container}>
<View ><Text >{((this.state.mytextvar).length > this.state.maxlimit) ?
(((this.state.mytextvar).substring(0,this.state.maxlimit-3)) + '...') :
this.state.mytextvar}</Text></View>
<View ><Text style={{fontWeight: 'bold'}}>bbbbb</Text></View>
<View ><Text >ccccc</Text></View>
</View>;
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
flexDirection: 'column'
}
});
导出默认类App扩展React.Component{
构造函数(){
超级()
此.state={
mytextvar:“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
最高限额:50
};
}
render(){
返回
{((this.state.mytextvar.length>this.state.maxlimit)?
(((this.state.mytextvar).substring(0,this.state.maxlimit-3))+“…”):
this.state.mytextvar}
bbbbb
ccccc
;
}
}
const styles=StyleSheet.create({
容器:{
弹性:1,
flexDirection:“列”
}
});
不幸的是,React Native不支持这一点,它的样式与React不同。尝试添加{{flex:1}}在每个可能的组件和每个组合中都尝试了这一点,运气不好……嘿,你希望图像与文本内联吗?我说得对吗?@HaiderAli是的,但不仅仅是图像。只是一般视图您可以在文本中添加视图作为父视图,反之亦然,但问题是它们不是内联视图?@HaiderAli这在Android上不起作用,只在iOS上起作用。如果您这样做,它在Android上就不起作用了?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,这对我来说不是一个有效的解决方案。如果需要应用于内联元素的样式可以用文本进行样式设置,那么这个解决方案就足够了,任何更复杂的东西(如OP的示例)都不起作用。不幸的是,这不是解决方案。这并不能阻止视图总是矩形的。所以,我想我不太理解你。你能添加一个你试图实现的模拟吗?
export default class App extends React.Component {
constructor(){
super()
this.state = {
mytextvar :'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
maxlimit:50
};
}
render() {
return <View style={styles.container}>
<View ><Text >{((this.state.mytextvar).length > this.state.maxlimit) ?
(((this.state.mytextvar).substring(0,this.state.maxlimit-3)) + '...') :
this.state.mytextvar}</Text></View>
<View ><Text style={{fontWeight: 'bold'}}>bbbbb</Text></View>
<View ><Text >ccccc</Text></View>
</View>;
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
flexDirection: 'column'
}
});