在左侧为 Android 剪切了 <TextInput>(粗体文本错误)

Posted

技术标签:

【中文标题】在左侧为 Android 剪切了 <TextInput>(粗体文本错误)【英文标题】:Cutted <TextInput> on left for Android (BOLD text bug) 【发布时间】:2021-02-17 00:04:30 【问题描述】:

我有 react-native TextInput,如果我输入长字符串,它会自动增长。在 ios 上它按预期工作,但在 android 上,它在 5-7 个字符后开始切断左侧。字符串越长 - 截断越大。我试图删除边距和填充 - 没有变化。我查看了文档中的道具 - 还没有找到解决方案。我可以滚动查看被截断的字符串,但我希望不滚动查看它,除非没有更多空间可以增长。

          <TextInput
            key=key
            style=
                flex:1, 
                fontSize: '1.2rem',
                fontWeight: 'bold',
            
            value=this.state.value
            onChangeText=this._onChangeText
            underlineColorAndroid="transparent"
            autoCapitalize="none"
            autoCompleteType='off' // Android
            autoCorrect=false // iOS
            contextMenuHidden=true
            importantForAutofill="no"
            keyboardAppearance="dark"
            maxLength=150
            returnKeyType=returnKeyType
            spellCheck=false
            keyboardType=Platform.OS==='ios'
              ?'default'
              :"visible-password" // to disable autocorrect suggestions on android
             
          />

【问题讨论】:

【参考方案1】:

在 TextInput 元素上将 textBreakStrategy 设置为 simple 似乎也适用于某些设备。

基本上这是与系统字体的冲突,所以你可以为你的文本输入指定一些其他的fontFamily。更多技巧可以在左侧添加一些额外的空间

【讨论】:

【参考方案2】:

当我准备问题时,我发现设置 fontWeight: 'bold' 会导致此问题。但我仍在研究如何使其与粗体文本一起使用(如果可能的话)。

我试图找到一个没有粗体属性的粗体字体,但它的行为是一样的......所以看起来 TextInput 只能使用默认字体正常工作,没有粗体属性,这很不方便。

github上的问题:https://github.com/facebook/react-native/issues/30317

【讨论】:

以上是关于在左侧为 Android 剪切了 <TextInput>(粗体文本错误)的主要内容,如果未能解决你的问题,请参考以下文章

创建一个标签“<text>”部分的单词被剪切。 c3.js - d3.js

Android实现位图剪切

如何在移动端复制到剪切板

Android背景+文本+按钮图标

Android中使用OKHttp上传图片,从相机和相册中获取图片并剪切

用js实现图片复制到剪切板的功能,兼容各种浏览器,例如IE,火狐、chome等。