首页 > 解决方案 > React Native ViewPager 与 KeyboardAvoidingView 作为父级不会保持键盘 - iOS

问题描述

当我将ViewPagerfromreact-native-community/viewpager与 a 一起使用时, isKeyboardAvoidingView的样式和 KeyboardAvoidingView 的行为是键盘跟不上。ViewPagerflex:1padding

<KeyboardAvoidingView style={{flex: 1}} behavior="padding">
    <ViewPager
      {...viewPagerProps}
      ref={viewPagerRef}
      scrollEnabled={false}
      keyboardDismissMode="on-drag"
      style={[{flex: 1, borderWidth: 1, borderColor: 'red'}, style]}
      onPageScroll={Animated.forkEvent(onPageScroll, _onPageScroll)}
    />
    {_renderBottomControls()}
  </KeyboardAvoidingView>

_renderBottomControls()

<SafeAreaView style={{flexDirection: 'row', justifyContent: 'space-between', padding: 8}}>
    <Transitioning.View
      transition={transition}
      ref={transitionBackButtonRef}>
      {currentPage !== 0 && (
        <Button mode="text" compact onPress={_onPressPrevious}>
          Voltar
        </Button>
      )}
    </Transitioning.View>

    <Button mode="contained" disabled={!isValid} onPress={_onPressNext}>
      {isLastPage ? 'Concluir' : 'Continuar'}
    </Button>
  </SafeAreaView>

GIF 显示问题

标签: javascriptreact-nativereact-native-ios

解决方案


对此的修复并不明显,我希望开发人员将其放入文档中

视图寻呼机需要是绝对位置

<ViewPager style={{position: 'absolute'}}/>

此外,如果屏幕现在被键盘隐藏,请将 viewpager 包装在KeyboardAvoidingView


推荐阅读