React native TextInput阻止ScrollView滚动

React native TextInput阻止ScrollView滚动,react-native,react-native-android,react-native-scrollview,React Native,React Native Android,React Native Scrollview,我有一个比手机屏幕高的表格。它是一个滚动视图,包含文本输入组件。问题是,当我想在文本输入上拖动开始触摸时,滚动视图不会移动。如果我在空白处拖动start(代码示例中的视图),它会完美地滚动 这感觉就像TextInput以某种方式吞噬了触摸/拖动事件,而不允许ScrollView交互 ScrollView与此类似: function Form() { return ( <ScrollView style={{ flex: 1, }}> &

我有一个比手机屏幕高的表格。它是一个
滚动视图
,包含
文本输入
组件。问题是,当我想在
文本输入
上拖动开始触摸时,
滚动视图
不会移动。如果我在空白处拖动start(代码示例中的
视图
),它会完美地滚动

这感觉就像
TextInput
以某种方式吞噬了触摸/拖动事件,而不允许
ScrollView
交互

ScrollView
与此类似:

function Form() {
    return (
        <ScrollView style={{ flex: 1, }}>
            <TextInput placeholder="test" />
            <TextInput placeholder="test" />
            <TextInput placeholder="test" />
            <TextInput placeholder="test" />
            <TextInput placeholder="test" />
            <View style={{ height: 150, }} />
            <TextInput placeholder="test" />
            <TextInput placeholder="test" />
            <TextInput placeholder="test" />
            <TextInput placeholder="test" />
        </ScrollView>
    );
}
函数形式(){
返回(
);
}
我怎样才能使滚动工作


<强>更新< /强>:我注意到当我开始在空白空间滚动时,我可以通过触摸输入来滚动。然而,一旦惯性停止,我就无法再次使用输入进行滚动。

更新:这可能会有帮助-

可能是包裹在
周围的缺少的

我尝试了这个,它从内部视图和TextInput组件都可以正常滚动:

 render() {
    return (
        <View style={{ flex: 1 }}>
            <ScrollView style={{ flex: 1 }} >
                <TextInput placeholder="this is a textinput with height 200" style={{ borderColor: 'brown', borderWidth: 1, height: 200 }} />
                <TextInput placeholder="this is a textinput with height 1200" style={{ borderColor: 'brown', borderWidth: 1, height: 1200 }} />
                <View style={{ height: 150, backgroundColor: 'khaki' }} />
                <TextInput placeholder="this is a textinput with height 200" style={{ borderColor: 'brown', borderWidth: 1, height: 200 }} />
            </ScrollView>
        </View>
    );
}
render(){
返回(
);
}

但是,既然您说它在从视图组件拖动时会滚动,那么共享整个代码可能会显示出一些问题,所以看起来这是0.32版本的React Native library中的一个bug。滚动按0.33中的预期工作。这一问题由解决。

面临同样的问题。事实证明,只有当
TextInput
组件被赋予隐式
height
样式时,才会出现这种情况,这会迫使组件向下收缩,并开始捕获滚动事件。我删除了它,并通过
fontSize
padding
管理了我的
TextInput
大小,它为我解决了这个问题。

虽然这是一个老问题,但我也遇到了同样的问题,没有找到公共解决办法

在我的例子中,原因是
TextInput
height
style属性未明确设置。没有它(或设置了
flex:1
时,不管怎样),输入字段的实际高度可能会略小于其文本的高度,迫使文本垂直滚动(即使
多行
样式为
滚动启用
,等等)

因此,我的解决方案是显式设置最小的
高度
值,以使整个文本适合。

如此处所述:
textAlign=“center”
导致此问题


使用
style={{textAlign:“center”}添加
multiline={true}
可以解决问题。

谢谢,但是添加
视图
没有帮助。在0.39.2中也有同样的问题。如果可以,请尝试升级到最新版本。您落后了十个版本:/text输入中仍有一个可见的滚动,它本身仍在
react native:0.47.2
中出现,仍在
react native:0.60
中出现,如下所述:text输入防止滚动查看#25594 textAlign=“center”导致此问题。