I am developing an app for Android, which is supposed to behave like a lightweight modal box that presents a drop-down to search and choose stuff from. I decided to use the AutoCompleteTexView for that. My question is, why does the keyboard happen to cover part of the items? I though that AutoCompleteTextView will automatically move up to give space to the keyboard. It doesn't. In fact, it hangs at about the middle of the screen.
The layout that is holding the ACTV is a simple LinearLayout with vertical orientation.
Related
I have an in app keyboard that tries to behave like a system keyboard. So far it pops up from the bottom using Bottom Sheet, which is great.
However, unlike a system keyboard, it does not push the entire layout up when you select an EditText that might otherwise get hidden. So far all the solutions I saw on StackOverFlow seem to be about Soft/System Keyboard not an in-app implementation like mine.
Here is my activity with 3 Edit Texts
This is what happens if I click on the last Edit Text. It gets covered by the keyboard in blue
This is how I want it to be. Everything getting pushed up.
How can I achieve this?
I am developing an application for android devices, which manages TV channels and shows. In it there is an option for the user to add channels in the system using a custom widget. The widget uses autocompleteTextView. My layout does not adjust itself when the soft keyboard appears.
These are the 2 states of the layout:
The keyboard blocks the user from viewing the options in the dropdown and the field below it. I have already tried the solution here and here. But none of them got it to work.
I want to move the layout of the widget itself, rather then the whole layout behind. How to go about this problem?
In my Android application running in a XOOM device, when I click in an Edittext the keyboard opens and hides the Actionbar. I don't want this to happen, how can I solve this? This is done by the Google Contacts app for the tablet for example.
EDIT:
I have several edittexts in which the user needs fo fill. At first, when the user clicked on one edittext on the bottom, the keyboard showed up and hide the edittext in which the user was typing, so he couldn't see what he was typing. I found it really bad, and to solve it I just added to the manifest: android:windowSoftInputMode="stateVisible|adjustPan"
But after that, now the screen adjust itselfs and hides the action bar.
The Google Contacts app does the same, but it magically doesn't hide the Action bar. How do they do it?
Use adjustResize instead of adjustPan. The framework will always try to keep the focused element on-screen by scrolling any parent views if necessary.
If your EditText field is not nested in some sort of scrolling container such as a ScrollView then your layout may be too tall to completely display when the keyboard resizes your activity. Try wrapping your form's layout in a ScrollView. This will also allow your app's content to scroll if it is running on a smaller screen device where it may have similar issues.
I've created a custom IME for Android tablets and I'm having trouble resizing when the screen is in horizontal orientation. Whenever an EditText is clicked while the screen is horizontal, the IME takes over the entire screen with the standard EditText and Button combo with my custom IME at the bottom of the screen. However, I'd like for the IME to simply pop up without that and type directly into the field that was originally clicked, as it does in horizontal orientation. I've looked at the SoftKeyboard example, which accomplishes this (at least on honeycomb) and can't find exactly where they are setting that effect.
Sorry if this is a duplicate, I've tried searching but couldn't find this exact question.
If anyone else is having this issue, you can prevent your IME from entering fullscreen mode by overriding the onEvaluateFullscreenMode() method, which is what determines whether or not your IME will display in full screen.
Now I'm having different issues but that's for a different thread!
I have a layout which has one large EditText view at the top + a bunch of buttons at the bottom. The EditText is made to shrink and expand when the ime is activated/deactivated by using adjust_resize. The buttons at the bottom are pushed up above the ime.
I would like to hide these buttons when the ime displays, to provide enough space for the EditText view.
I have so far tried the following:
subclassed EditText and provided the activity the option to register a callback on the view's OnSizeChanged.
Used this callback to change the visibility of the buttons (actually the layout container) to GONE.
This work OK and does hide the buttons when the ime pops up.
However, the EditText does not expand into the new available space.
Furthermore, when the ime is disposed off, the EditText field is now bigger than it was originally, pushing (the now showing) buttons outside the screen.
I should also add that when typing the first letter into the view, and the ime displays the word options, the screen is redrawn and the EditText fills the vacant space.
Any ideas on how to get this to work?
Or even better, is there a simpler solution to my requirement?
Thanks...
NB: In my view, scrolling is not a good option.
I got this to work by changing the above method a bit:
Wrapped the entire layout with a FrameLayout
subclassed the FrameLayout and provided the activity the option to register a callback on the layout's OnMeasure
This gives the activity a chance to change visibility of views before these are measured.
I would still be very happy to hear about simpler solutions, especially in regards to figuring out whether the keyboard is currently visible or not.
(dumpsys window shows this information. Can we easily get to it?)
Have you tried to call myView.invalidade() ?
I was using the GONE property, but then changed to button.setVisibility(View.INVISIBLE); because I don't have any other stuff on my screen.
on the adjust_resize, you will need to check again when the keyboard has gone and show the buttons again.