我在我的Android应用程序中自定义了文本视图。我想将其与react native一起使用。因此,我遵循该指南并将其编写为:
public class CustomizedTextViewManager extends SimpleViewManager<CustomizedTextView> {
...
}
它可以工作,但是不能根据其内容调整textview的高度。我必须在render()中指定一个高度,否则textview将不会扩展。
我想要的是它可以根据其内容重置其高度,就像Rn textview所做的一样。
render(){
...
<CText style={styles.message} >{message.text}</CText> // CText is the CustomizedTextView
...
}
cosnt styles = ...({
...
message:{
...
height: 100,
}
...
})
问题是当textview中的内容很少时,它看起来很仓促。
因此,我查看了ReactTextViewManager.java并重新编写了如下视图:
public class CustomizedTextViewManager extends BaseViewManager<CustomizedTextView,ReactTextShadowNode> {
...
}
表明:
CustomizedTextView没有用于原生prop的propType原生类型boolean的CustomizedTextView.allowFontScaling
如何解决?谢谢。
最佳答案
固定,我不好。
该错误已经暗示我应该设置“ allowFontScaling”之类的道具。
起初,我以为我在本机管理器中缺少实现“ allowFontScaling”。但这不应该。本机管理器已经是Rn文本管理器的子类,它应该实现所有道具。
最后,在Rn调试器中,我发现我应该在'CText.js'的propTypes中添加Text.propTypes和View.proTypes
解:
var iface = {
name: 'GSMText',
propTypes: {
myProp1: PropTypes.string,
myProp2: PropTypes.number,
...Text.propTypes, // must add this tow propTypes
...View.propTypes, // other wise will see the red screen
}
}
希望对您有所帮助。