React本地按钮:适合文本布局

3phpmpom  于 2023-01-27  发布在  React
关注(0)|答案(2)|浏览(151)

在React-Native here的按钮文档中,它显示了一张图像,内容如下:Fit to text layout。这就是我正在寻找的,因为我的按钮总是有全宽,但我希望它只有一样宽的文本。但无论是在文档中,还是在按钮代码here,我可以找到一些相关的东西,一个 prop 或它如何实现。有人有一个想法如何得到它?

bqjvbblv

bqjvbblv1#

我建议用TouchableOpacity和Text制作自己的按钮。
例如,这是我经常使用的组件:

export default class RoundedButton extends React.Component<Props>{

  render(){
    const defStyles : StyleProp<ViewStyle> = [style.button, {
      backgroundColor: this.props.backgroundColor,
    }, this.props.style];
    if(this.props.shadow)
      defStyles.push(style.shadow);

    return(
      <TouchableOpacity
        disabled={!this.props.onPress}
        onPress={() => {
          if(this.props.onPress)
            this.props.onPress();
        }}
        style={defStyles}
      >
        <Text style={{
          color: this.props.textColor,
          fontFamily: fonts.bold,
          fontSize: 16
        }}>{this.props.centerText}</Text>

      </TouchableOpacity>
    );
  }

}

如果你愿意,可以在这里找到完整的要点:https://gist.github.com/Sangrene/176c1b87ad5b355e26b5c6aa80b96eae.

wmtdaxz3

wmtdaxz32#

可以在文本组件中传递prop adjustsFontSizeToFit={true}
如果你在文本的样式中添加一个fontSize,它将覆盖这个属性,并且不起作用。
示例

<View style={{widht: 100, height: 60}}>
   <Text adjustsFontSizeToFit={true}>
     Your Text Here
   </Text>
</View>

相关问题