Firstly thank you for the fine work!
TIL there is a thing called "floating keyboard" for iPad. You can enable it by pinching on the keyboard on iPad and disable it by un-pinching(?).

keyboardShown and keyboardHeight seem to misbehave when this is active and when you dismiss it.
Using the following code for the scenarios below:
const { keyboardShown, keyboardHeight } = useKeyboard();
console.log('keyboardHeight: ', keyboardHeight);
console.log('keyboardShown: ', keyboardShown);
When Floating Keyboard is open from the start (maybe you already set this in another app), it logs:
LOG keyboardHeight: 0
LOG keyboardShown: false
And then when you swipe to remove the floating keyboard and replace it with the regular keyboard, it logs (this is good):
LOG keyboardHeight: 337
LOG keyboardShown: true
And then, pinch to enable the floating keyboard again, and it logs (this is bad):
LOG keyboardHeight: 337
LOG keyboardShown: false
It seems like at the very least, keyboardHeight should be set to 0 on the last scenario. That way you can inform the your KeyboardAvoidingView to be enabled={false}. That is how I discovered the issue.
There is a decent answer here about detecting the floating keyboard. Perhaps some additional fields could be added to the hook to make it more useful.
Firstly thank you for the fine work!
TIL there is a thing called "floating keyboard" for iPad. You can enable it by pinching on the keyboard on iPad and disable it by un-pinching(?).
keyboardShownandkeyboardHeightseem to misbehave when this is active and when you dismiss it.Using the following code for the scenarios below:
When Floating Keyboard is open from the start (maybe you already set this in another app), it logs:
LOG keyboardHeight: 0 LOG keyboardShown: falseAnd then when you swipe to remove the floating keyboard and replace it with the regular keyboard, it logs (this is good):
LOG keyboardHeight: 337 LOG keyboardShown: trueAnd then, pinch to enable the floating keyboard again, and it logs (this is bad):
LOG keyboardHeight: 337 LOG keyboardShown: falseIt seems like at the very least,
keyboardHeightshould be set to 0 on the last scenario. That way you can inform the your KeyboardAvoidingView to beenabled={false}. That is how I discovered the issue.There is a decent answer here about detecting the floating keyboard. Perhaps some additional fields could be added to the hook to make it more useful.