我正在尝试截断我的反应本机应用程序中的文本。我决定使用“ellipsizeMode”属性,但我无法让它工作。
我写了一个问题的演示:
'use strict';
import React, { Component } from 'react';
import {
StyleSheet,
Text,
View,
} from 'react-native';
export class EllipsizeModeTest extends Component {
render() {
return (
<View style={styles.container}>
<Text style={styles.text}>{'first part | '}</Text>
<Text style={styles.text} numberOfLines={1} ellipsizeMode={'tail'}>
{'a text too long to be displayed on the screen'}
</Text>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flexDirection: 'row',
},
text: {
fontSize: 20,
}
});
现在文本没有被截断,知道为什么吗?
我遇到了同样的问题,将元素的大小绑定到一个值就足够了。所以如果你定义宽度,或者添加一个弹性值就可以了。
<View style={{width: 200}}><Text ellipsizeMode='tail' numberOfLines={1}></View>
别忘了添加
numberOfLines={1}
。我添加了它并开始工作。
样品:
<Text numberOfLines={1}
ellipsizeMode= 'tail'
style={{
maxHeight: 30,
marginStart: 16 }}>
My Long Long text
</Text>
尝试将字符串分配给
ellipsizeMode
(删除大括号):
<Text style={styles.text} numberOfLines={1} ellipsizeMode='tail'>
尝试为组件设置宽度样式属性
'use strict';
import React, { Component } from 'react';
import {
StyleSheet,
Text,
View,
} from 'react-native';
export class EllipsizeModeTest extends Component {
render() {
return (
<View style={styles.container}>
<Text style={styles.text}>{'first part | '}</Text>
<Text style={styles.text} numberOfLines={1} ellipsizeMode={'tail'}>
{'a text too long to be displayed on the screen'}
</Text>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flexDirection: 'row',
},
text: {
fontSize: 20,
width: 100
}
});