LoginSignup
5
3

More than 5 years have passed since last update.

React Native で、キーボードが出ている時に閉じずにボタンをタップしたい

Last updated at Posted at 2018-02-27

これです。

<ScrollView keyboardShouldPersistTaps="always">
  <Button onPress={() => alert('Tapped')} />
  <TextInput defaultValue="Please edit me" />
</ScrollView>

keyboardShouldPersistTaps="always"

概要

ReactNativeで、キーボードが出ている(テキスト入力中)に、画面上のボタンをタップする時、直接タップしてもキーボードが閉じて、もう一回タップしないと onPress が発火しないことがあり困っていました。

調べたところ、問題は ScrollView を使っている時です。View ならボタンがそのままタップされます。

TextInput にフォーカスが当たっている時、ScrollView をタップすると、自動的にフォーカスが外れる仕様っぽいです。

よって、その仕様を解除しましょう。

雑念

ReactNative、非常に生産性高く開発できる感はあるのですが、強いて不満を言うとすれば

  • 少なくとも現状の 0.52 では仕様変更が多い。ライブラリ入れようとしても、ネイティブの要素が入ってくると容易にはインストールできないし、原因の特定が難しい。
  • FlatList のバグが多い。
  • ナビゲーションを扱うのが難しい。ナビゲーションの状態をストアで管理できないから、結局コンポーネントに直書きすることになるが、それもナビゲーションのステートに関数バインドしなければなので面倒。
    • スター数が多いから安直に React Navigation を入れたが、なかなか扱いが難しいので React Native Router FluxReact Native Navigation を使ったほうがいいかも。特に前者。

react-** が多い。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3