代码之家  ›  专栏  ›  技术社区  ›  user2427293

当焦点文本输入反应为本机时,scrollview无法滚动

  •  5
  • user2427293  · 技术社区  · 8 年前

    我在ScrollView中有一个TextInput。

    6 回复  |  直到 8 年前
        1
  •  9
  •   Mahdieh Shavandi    4 年前

    背景

    <ScrollView keyboardShouldPersistTaps="always"

    结合下面的textInput组件(我为文本输入创建的自定义组件,用于解决此问题)解决了我的问题:

    <TouchableOpacity
         activeOpacity={1}
         onPress={()=>this.input.focus()}>
         <View pointerEvents="none"
               <TextInput
                  ref = {(input) => this.input = input}
               />
         </View>
    </TouchableOpacity>
    
        2
  •  2
  •   Man    6 年前

    在scrollView中使用 键盘应保持点击

    <ScrollView keyboardShouldPersistTaps="handled">
    

    它解决了你的问题

    在此处检查文档 https://facebook.github.io/react-native/docs/scrollview.html#keyboarddismissmode

        3
  •  1
  •   Amin Dannak Computer's Guy    4 年前
        4
  •  1
  •   Meisan Saba    3 年前

    我用简单的技巧 TextInput 这对我来说是正确的。应该加上这个 prop 在里面 文本输入框 :

    <TextInput
          multiline={true}
          numberOfLines={1}
     />
    
        5
  •  0
  •   Eliza Elizel    8 年前

    这是一个很好的例子: http://blog.arjun.io/react-native/mobile/cross-platform/2016/04/01/handling-the-keyboard-in-react-native.html

    对我来说真正重要的是补充:

    在AndroidManifest中。xml以聚焦textInput

        6
  •  0
  •   Idan    5 年前

    我以不同的方式处理每个平台(Ios关注inputText就足够了, 别忘了把 this.scrollViewRef 内部ref ScrollView 包装inputText并将ref索引input文本的

    if (Platform.OS == 'android') {
        this.inputRefs[field].measure((w, h, px, py, xPage, yPage) => {
            this.scrollViewRef.scrollTo({ x: 0, y: yPage, animated: true })
            this.inputRefs[field].focus()
        })
    } 
    this.inputRefs[field].focus()