SimformSolutionsPvtLtd / flutter_showcaseview

Flutter plugin that allows you to showcase your features on flutter application. 👌🔝🎉

Home Page:https://pub.dev/packages/showcaseview

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Misalignment Problem Following OS Keyboard Display and Dismissal

dreyescabrera opened this issue · comments

Describe the bug
While attempting to showcase a TextField widget situated within a SingleChildScrollView & Column setup, I encounter an issue. The said widget is positioned near the bottom of the Column, and consequently, the screen. Upon filling the TextField and the OS keyboard appearing, the widget (along with the showcase target) naturally rises. However, upon dismissing the keyboard, the showcase target becomes misaligned (appearing above the intended widget). This occasionally leads to a dysfunctional UI. Interestingly, performing a Hot Reload resolves the alignment, restoring it to the correct position.

To Reproduce
Steps to reproduce the behavior:

  1. Create a Scaffold -> SingleChildScrollView -> Column
  2. Showcase a TextField widget that is at the bottom of the device screen, and set disableDefaultTargetGestures to true
  3. Tap the TextField, so the OS keyboard is displayed and then close it.

Expected behavior
The showcase target maintains its vertical alignment after displaying and closing the OS keyboard

Screenshots

Before displaying and closing the OS keyboard

After displaying and closing the OS keyboard

Smartphone (please complete the following information):

  • Device: Samsung S21 FE
  • OS: Android 14

Oh, also I just discovered that when the keyboard is displayed on screen, it lets me scroll vertically all over the screen without restrictions

Thank you for raising this issue @realDiegoR. For general use case of showcasing application features, such keyboard interaction won't be needed. If you keep disableDefaultTargetGestures as false then you would not run into any issues in the latest code of this package. I am closing this as of now with the aforementioned reason.