【ReactNative】キーボード上にボタン、アイコンを表示する方法
本記事の内容
  • キーボード上に”完了ボタン”や”アイコン”を設置したい
  • “完了ボタン”や”アイコン”を押すことでキーボードを閉じたい

と言う方に向けて記事を書いていきます。

本記事を読むことで、下の画像のようにキーボード上の”完了ボタン”や”アイコン”を表示させ、タップすることでキーボードを閉じることができます。



1. 概要

今回は、キーボードの上にボタンを配置する方法について紹介していきます。

TextInputなどのテキストボックスで、テキスト入力を複数行設定にするとreturnキーでキーボードが閉じれなくなります。

そんな時に「キーボード上にキーボードを閉じるボタンを表示させたい」と思う方がいると思います。

その悩みを解決するのが、InputAccessoryViewコンポーネントです。

InputAccessoryViewコンポーネントとは?

キーボード上をカスタマイズできるようにするコンポーネントです。
このコンポーネントを使ってキーボード上にボタンを設置していきます。

公式ドキュメント: InputAccessoryView

2. 実装

2.1 サンプルコード

2.2 結果



3. サンプルコードについて解説

3.1 インポート

react-native’ライブラリからInputAccessoryViewコンポーネントをインポートします。

3.2 InputAccessoryViewの使い方

InputAccessoryViewコンポーネントの使い方について解説していきます。

IDの宣言

まず、 公式ドキュメント の記載通りに const inputAccessoryViewID = ‘uniqueID’; を宣言します。


このinputAccessoryViewIDを使って、”TextInput”と”完了ボタン”を紐付けます。

テキストボックスの設定

テキストボックスで下記のようにIDを設定します。
このIDが書かれている<TextInput>のみキーボード上をカスタマイズすることができます。

完了ボタンの実装

<InputAccessoryView>コンポーネント内の処理がキーボード上に表示されます。


ここまでの手順でキーボード上にボタンを配置できました。
あとは、ボタンに処理を設定したら完成です。

3.3 キーボードを閉じる処理

Keyboardコンポーネントの.dismiss()メソッドを使うことでキーボードを閉じることができます。

ボタンのonPressプロパティに設定すれば、ボタンの押下時にキーボードを閉じる機能が完成です。

インポート

react-native’ライブラリからKeyboardコンポーネントをインポートします。

ボタンに設定

onPressに設定しましょう。



4. アイコンの表示方法

2.1 サンプルコードの文字列表示(Text)をアイコン(Icon)に変えてあげることで表示することができます

4.1 サンプルコード

4.2 結果

4.3 参考

今回アイコンを表示する為にVectorIconを使っています。
VectorIconの使い方については、以前の記事を確認してください。



5. まとめ

今回は、キーボード上のカスタマイズする方法として、InputAccessoryViewコンポーネントを紹介しました。簡単に実装することができるので、試しに実装してみることをオススメします(^^)