I have the following scenario. I have a view with several states, one of these states contains a long DataGrid.
I noticed in 4.6, if you click on a field that the keyboard would cover up, the entire view scrolls up so you can still see this field above the keyboard. This feature is great.
However, if I go back to a state that doesn't contain this keyboard while the keyboard is up, the view doesn't come back down. So I have a giant blank white space at the bottom of my screen and no access to the action bar. Please see the following screenshots:
This is the view, with several states. So this is the EditState.
Here, the view is the same, the state has changed though. This is the AttributeState.
Here, the user has clicked on one of those fields on the bottom, you can see the whole view has moved up so both the field and the buttons are visible
And here, the user has clicked the Cancel button, with the screen still visible. This cancel button just changes the state back to the EditState, it does not pop the views.
This is the same size picture as the other ones. The blank space right above this line is actual whitespace on the screen. You can see at the top, the user has no access to the buttons, which should be visible at this point. If I close the keyboard first and THEN click cancel, the buttons are there correctly and the view looks right.
This doesn't seem to be an issue on android, I'm testing on an Asus Transformer. On droid, the whole screen isn't visible, the area the user is modifying pops up just above the keyboard so you never see the save and cancel button. However, if these were at the top, I'm not sure if you'd get the blank space or not.
Is there a workaround for this? Right now I've moved the Save and Cancel button up into the title content which looks a little ridiculous, but at least that way the user can't click it if the keyboard has moved the window up. Is there a way I can detect that the softkeyboard is open and base the enabled state of the buttons on this property? Any suggestions would be greatly appreciated.
One more note, I also set stage.focus = null as soon as the user hits the Save or Cancel button to make the keyboard go away first but this doesn't fix the problem.