npm 包 react-native-keyboard-avoid 的使用教程

阅读时长 6 分钟读完

在前端开发中,移动端开发的需求越来越多,而 React Native 是一款流行的开发框架。在使用 React Native 开发移动端应用时,有时会遇到键盘弹起挡住输入框的问题,这时候就需要使用 react-native-keyboard-avoid 这个 npm 包来解决这个问题。

安装

使用 npm 安装 react-native-keyboard-avoid:

使用

react-native-keyboard-avoid 库是通过在 ScrollViewListViewFlatListSectionList 上添加一个 KeyboardAvoidingView 组件,来实现自动避让键盘。

首先,我们需要在需要避让键盘的页面引入 KeyboardAvoidingView 组件:

-- -------------------- ---- -------
------ ------ - --------- - ---- --------
------ - --------------------- ----------- ----- ---------- ------ - ---- ---------------

------ ------- ----- ----------- ------- --------- -
  -------- -
    ------ -
      --------------------- -------------------
        ------------
          ------
            ----------
              ----------------------
              -- ---- --------
            --
            --- ---- --------- ------------- ---
            -------
              ----------
              ----------- -- --------------------
            --
          -------
        -------------
      -----------------------
    --
  -
-

其中 behaviorKeyboardAvoidingView 的一个属性,表示键盘遮挡视图时视图的表现形式,padding 表示视图底部会自动添加一些内边距,以免被键盘遮挡。

然后,我们需要为所有需要自动避让键盘的 TextInput 组件添加 TextInput 的相关属性:

其中:

  • returnKeyType 表示键盘上 return/enter 按钮的显示文本,默认时 default,可以设为 sendsearchgodonenext 等。
  • blurOnSubmit 表示当按下 return/enter 按钮时,是否立即关闭键盘,默认为 true
  • onSubmitEditing 表示当按下 return/enter 按钮时触发的方法。

示例

下面是一个简单的示例代码:

-- -------------------- ---- -------
------ ------ - --------- - ---- --------
------ - --------------------- ----------- ----- ---------- ------- ---- - ---- ---------------

------ ------- ----- ----------- ------- --------- -
  ----- - -
    --------- ---
    ---------- ---
  -

  ----------------- - ------ -- -
    --------------- ---------- ---- ---
  -

  ------------ - -- -- -
    ----- - ---------- -------- - - -----------
    ----- ----------- - ---------------------------
    --------------- --------- ------------ ---------- -- ---
  -

  -------- -
    ----- - --------- --------- - - -----------

    ------ -
      --------------------- -------- ----- - -- -------------------
        ----------- -------- -------- -- ---
          ----------------------- ------ -- -
            ----- ----------------------------
          ---
        -------------
        ----- -------- -------------- ------ -------- --- --------------- -- --------------- ------ ---
          ----------
            -------- ----- - --
            --------------------
            -----------------
            -------------------------------------
            --------------------
            --------------------
            -----------------------------------
          --
          -------
            ----------
            ---------------------------
          --
        -------
      -----------------------
    --
  -
-

运行效果:

总结

通过 react-native-keyboard-avoid 这个 npm 包,我们可以很方便地解决移动端开发中的键盘弹起阻挡输入框的问题。你可以根据自己的需求,设置 KeyboardAvoidingViewbehavior 属性,以使避让键盘的效果更自然。此外,还可以配合 TextInput 组件的相关属性,例如 returnKeyTypeblurOnSubmitonSubmitEditing,使输入体验更加流畅。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056cbb81e8991b448e62d1

纠错
反馈