繁体   English   中英

Viewpager 中的 TouchableHighlight 将页面更改事件作​​为在 react-native ios 中的单击

[英]TouchableHighlight inside Viewpager taking page-change event as click in react-native ios

我们在我们的应用程序中使用了view pagerreact-native-community/react-native-viewpager ),每个页面有 3 个部分,所有 3 个部分都是可点击的,为了使其可点击,我们使用了TouchableHighlight

因此,每当我通过滑动更改页面时。 如果我的滑动TouchableHighlightIOS TouchableHighlight ,它会将其视为点击,否则在android它工作正常。

发布此信息以帮助像我这样的其他用户。

来自这个库的开发者的回答。

嘿嘿,你可以使用 onPageScrollStateChanged 方法,来阻止按钮交互。

switch(pageScrollState){
   case "idle": enableButton();
   default: disableButton(); 
}

或者我已经使用了这种方法。

    this.state = {
            shouldEnableClick: true,
        };

    pageScroll = (event) => {
        draggingValue = event.nativeEvent.offset
        isNotStill = (draggingValue == 0 || draggingValue == 1) ? true : false
        {Platform.OS == 'ios' && this.changeValue(isNotStill)}
    }

    changeValue(isNotStill) {
        if (this.state.shouldEnableClick !== isNotStill) {
            this.setState({ shouldEnableClick: isNotStill })
        }
    }

在组件中,我正在使用它

let enableCLick = this.state.shouldEnableClick
let clickAction = () => this.myAction()

<TouchableHighlight
      onPress={enableCLick && clickAction}/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM