无论用户字体大小如何,如何使文本适合按钮?

Posted

技术标签:

【中文标题】无论用户字体大小如何,如何使文本适合按钮?【英文标题】:How can i make a text fit in a button regardless of the user font size? 【发布时间】:2021-10-26 15:45:46 【问题描述】:

我有一个按钮,其标题非常适合我的手机,但我收到了其他字体较大的人提出的一些问题,由于按钮背景太小,文本被裁剪。

我以为这是因为我在文字中使用了宽度和高度,所以我将其更改为百分比,但错误仍然存​​在。 如何调整按钮大小以在任何设备上正确保存文本?

这是我的按钮

button: 
  backgroundColor: blue,
  justifyContent: 'center',
  padding: 9,
  borderRadius: 5,
  marginTop: 10,
  width: '40%',
  height: '10%',
,

这就是我使用它的方式

<View style=styles.button>
  <Ionicons.Button
    name="alarm"
    size=20
    color="white"
    onPress=showTimepicker
    backgroundColor='transparent'>
    <Text style=styles.notifsText>Definir horario de Notificaciones</Text>
  </Ionicons.Button>
</View>

这是我手机上的样子

这是我朋友手机上的样子

【问题讨论】:

【参考方案1】:

试试这个

<Text allowFontScaling=false>example </Text>

【讨论】:

嗯,这不是我想要的,但我想它可以解决问题,但有些人可能无法阅读。【参考方案2】:

widthheight 作为百分比是指继承的父级 大小的百分比,因此按钮将保持相同大小,而父级不会改变其大小。尝试删除这些属性以允许按钮呈现其完整的可用大小。

【讨论】:

按钮的视图父级的宽度和高度不存在,所以我添加了宽度:'100%' 和高度:'100%',但这并不能解决我的问题,如果我想要按钮成为 100% 的屏幕我可以做到,但我希望文本适合所有设备,而对于字体较小的用户来说,按钮不会很大。 你可以看到我的字体在android中是最小的,而我的朋友更大一些,所以在我的屏幕上,按钮包含整个文本,但在他没有。 这回答了您自己的问题。您已经为按钮指定了高度,该高度在所有设备上都是相同的,但字体大小会随屏幕大小而变化。您应该尝试移除高度。【参考方案3】:

发生这种情况是因为 allowFontScaling 的默认值为 true,这就是为什么它在不同手机上保持不同的原因。您可以传递 allowFontScaling=false 作为解决此问题的道具

【讨论】:

【参考方案4】:

您也可以使用vwvh 作为字体大小的单位。通过一些计算,您将得到一个合适的解决方案。

【讨论】:

以上是关于无论用户字体大小如何,如何使文本适合按钮?的主要内容,如果未能解决你的问题,请参考以下文章

使字体大小适合封闭按钮?

分配文本输入固定字体大小时,如何使文本输入和按钮具有相同的高度?

调整 UILabel 字体大小以适合文本

如何在 React Native for Android 中调整字体大小以适应视图?

调整字体大小以适合多个 UIButton,使它们都具有相同的字体大小

如何在iOS7中使用具有动态文本大小的自定义字体