React Native Android - 如何能够滚动 TextInput

Posted

技术标签:

【中文标题】React Native Android - 如何能够滚动 TextInput【英文标题】:React Native Android - How to be able to Scroll through TextInput 【发布时间】:2018-06-25 23:48:04 【问题描述】:

我正在创建一个表单,它的样式在左侧有标签,在右侧有 TextInputs 作为要求。所以我遇到的问题是当你以某种方式触摸 TextInput 时滚动是不可能的。大多数用户使用右侧滚动,所以这对我来说是一个主要问题。你有什么想法可以解决这个问题吗?

样式的示例代码以防万一或者人们可以找到有用的东西

<View style= flexDirection: 'row', marginTop: 10, justifyContent: 'center', alignItems: 'center'  >
                        <View style= justifyContent: 'center', alignSelf: 'center', alignItems: 'center', width: W, height: HEIGHT / 18, borderWidth: 1 >
                            <Text adjustsFontSizeToFit
                                style= textAlign: 'center', color: 'black',  >
                                Telefon Numarası
                            </Text>
                        </View>
                        <TextInput
                            ref=(node) =>  this.phoneNumber = node; 
                            dataDetectorTypes=['phoneNumber']
                            blurOnSubmit=false
                            keyboardType='phone-pad'
                           
                            defaultValue=this.props.data.plateInformation != null ? this.props.data.plateInformation.phoneNumber : ''
                            returnKeyType='go'
                            onChangeText=this.props.changePhoneNumber
                            keyboardAppearance='dark'
                            returnKeyLabel='Devam'
                            onSubmitEditing=() => this.carBrand.focus()
                            style= color: 'green', textAlign: 'center', borderWidth: 1, width: W, height: HEIGHT / 18, margin: 'auto' 
                        />
                    </View>

【问题讨论】:

这是android平台的问题。您可以通过以下链接跟踪此问题:github.com/facebook/react-native/issues/16206github.com/facebook/react-native/issues/12167 【参考方案1】:

出于某种原因,这对我有用:multiline=true

不完全确定为什么。 更奇怪的是,如果你也有keyboardType='numeric',它将无法正常工作。

【讨论】:

是的,我在我的实现中做了同样的事情。感谢您的回答,但我不会将其标记为答案,因此有人可以推动完全有效的解决方案。【参考方案2】:

试试这个,在 TextInput 中添加以下 props

<TextInput
  ...
  maxHeight=<your height>
  autoGrow= false  />

【讨论】:

感谢您的回答,但 TextInput 似乎没有您在答案中列出的那些道具。你能说得更具体些吗? 参考这个链接facebook.github.io/react-native/docs/0.50/textinput.htmlTextInput 有所有的道具。确保您使用的是最新的 RN 版本 我检查了我的 React Native 版本,即 0.50.4 。我的 TextInput 上怎么可能没有这些道具?我会想办法的。 我已经升级了我的 React,但我的 TextInput 似乎在 0.52.0 版本中仍然没有这些道具。听起来很奇怪。

以上是关于React Native Android - 如何能够滚动 TextInput的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用 Android 上的设备后退按钮(react-native)?

React-native - 如何在 android 上监控原生端生成的网络请求?

如何远程加载 react-native(Android) 包

如何检查android设备支持手电筒的`react-native`?

如何从 URL 下载图像并缓存 Android (React-Native)

如何通过@react-native-community/slider 在android中创建垂直滑块?