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'
     }
});