React Native - проблема с Android с помощью прокрутки WebView - PullRequest
0 голосов
/ 20 октября 2018

Прокрутка WebView не работает в Android.Я много искал и видел много других мест, никто не смог помочь.

Вот как я определил компонент

 <WebView
    automaticallyAdjustContentInsets={false}
    source={{uri: this.props.url}}
    javaScriptEnabled={true}
    domStorageEnabled={true}
    decelerationRate="normal"
    startInLoadingState={true}
    scalesPageToFit={isAndroid ? false : true}
/>

Кажется, это реагирующая нативная ошибка (котораявсегда существует), но должен быть обходной путь.

- ОБНОВЛЕНИЕ -

Я понял, что это не проблема WebView, и это происходит потому, чтоУ меня это есть в модале, и TouchableWithoutFeedback необходим, чтобы скрыть модал и, конечно, не прятаться, когда они касаются внутри модала.TouchableWithoutFeedback крадет событие печати и не работает прокрутка.

<Modal
    animationType='fade'
    onRequestClose={() => { }}
    transparent
    visible={visible} //its either true or false, if its ture it will be displayed if false, it will hide
>
    <TouchableWithoutFeedback onPress={onDecline} >
        <View style={containerStyle}>
            <Ionicons name="md-close" size={24} color={colors.primary} style={closeIconStyle} />
            <TouchableWithoutFeedback onPress={() => { }} >
                <View style={popupStyle}>
                    <View style={styles.textContainer}>
                        <Text style={textStyle}>
                            {this.props.title}
                        </Text>
                    </View>
                    <View style={[cardSectionStyle, {
                        marginTop: 5
                    }]}>

                        <View style={{ height: SCREEN_HEIGHT - 300, width: SCREEN_WIDTH - 80 }}>
                            <WebView
                                source={{ uri: this.props.url }}
                                style={contentStyle}
                                automaticallyAdjustContentInsets={false}
                                javaScriptEnabled={true}
                                domStorageEnabled={true}
                                decelerationRate="normal"
                                startInLoadingState={true}
                            />

                        </View>
                    </View>
                </View>
            </TouchableWithoutFeedback>

        </View>
    </TouchableWithoutFeedback>
</Modal>

1 Ответ

0 голосов
/ 20 октября 2018

Вы можете добавить style={flex: 1} в тег <Webview />.

Если это все еще не работает, просто попробуйте это:

<WebView
    source={{uri: this.props.url }}
    style={{marginTop: 20, flex: 1}}
    javaScriptEnabled={true}
    domStorageEnabled={true}
    startInLoadingState={true}
/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...