簡體   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