Android soft keyboard hides edit text field with windowSoftInputMode set - android

Some of my activities are made up of 3 fragments in a vertical layout (Top, middle and bottom)
The middle fragment is the only one that is wrapped in a scrollview. The top and bottom fragments are static. The bottom fragment has the edit text controls for user input. Weighting for fragments from top to bottom are .1, .6 and .3
When the soft keyboard comes up for user input, it covers the edit text fields the user needs to enter text in. It seems that the fragments move up, but not enough and half of the bottom fragment is covered by the keyboard. I used multiple switches with the windowSoftInputMode attribute and none seem to work.
windowSoftInputMode="adjustResize|stateHidden"
windowSoftInputMode="adjustPan"
How can I guarantee that at least the bottom fragment is completely visible when the soft keyboard is displayed? What do I have to do?

I got this working fully with XML. If you are looking to:
Not have the soft keyboard come up when an activity starts
Not have the soft keyboard hide any editText on the page (even with fragments)
Enter the following in your AndroidManifest.xml file for the activity that you wish to do the above to.
android:windowSoftInputMode="stateHidden|adjustPan"

You should add this to your manifist.xml file.
android:windowSoftInputMode="adjustResize"

Related

Trying not to show the buttons showing when I click in one of the EditText of the form

I'm working on an Android app with Android Studio. I have a form with several field and 2 buttons at the bottom to either validate or going back. The problem is that as soon as I click in one of the EditText of the form, the 2 buttons are following the keyboard.
How to prevent these 2 buttons to show up and force them to stay at the bottom of the page, hidden behind the keyboard. The form is in a ScrollView, which is in a ConstraintLayout. I tried many things like having my 2 buttons in the ConstraintLayout. Also outside in a RelativeLayout with constraint at the bottom of the parent... I also tried to use LinearLayout instead of the ConstraintLayout and weight each component but the buttons are still there. The only way I found is to use a vertical LinearLayout without weighting the components. But then I have the problem of not seeing the buttons if the screen is too small. I would like buttons to stay at the bottom.
Is it normal? Do I have to fix it from the code by hiding the buttons when focusing on one of the TextEdit, or by the layouts?
The other thing is that if I click on the last field ("Ville"), the form doesn't move and I still see the first 2 lines...
Thanks a lot for your help
On your manifest.xml you can set android:windowSoftInputMode to adjustPan.
<activity
android:name=".MainActivity"
android:windowSoftInputMode="adjustPan" />
From Android documentation:
Don't resize the window to make room for the soft input area; instead
pan the contents of the window as focus moves inside of it so that the
user can see what they are typing. This is generally less desireable
than panning because the user may need to close the input area to get
at and interact with parts of the window

Prevent Linear layout scrolling up when soft keyboard shown

I have an EditText visible in a LinearLayout that I don't want to move when the soft keyboard is shown. The reason I don't want it to move is because I want to control the items above and adjust their sizes to make the EditText and the content it controls below to become visible.
Is it possible to prevent the screen moving at all once the soft keyboard is shown?
Note: I am using an activity with the toolbar hidden.
I have solved this - I have added the SetSoftInputMode to AdjustNothing to the OnCreate method. Doing this in the xml doesn't do anything, but in the code does.
In your AndroidManifest.xml file, go to your activity and add this.
<activity
...
android:windowSoftInputMode="adjustNothing"
/>
your views will remain in the same position

Keyboard from EditText destroing Layout

I have EditText, when i toutch this, keyboard will show, but instead of covering the bottom part of the application, it shifts all the elements at the top and makes them smaller, everything looks distorted ...
How do I display the keyboard so that it does not affect our layout?
Please check this Link:
You can add in your menifest for the activity you want to prevent such issue.
Also make sure if you are having a bit more content use scrollView as a parent.
And soft input mode as "adjustResize"
android:windowSoftInputMode="adjustResize"
or
android:windowSoftInputMode="adjustPan"
you can use as per your need.
adjustResize
to ensure that the system resizes your layout to the available space—which ensures that all of your layout content is accessible (even though it probably requires scrolling)—use this one.
adjustPan
The activity's main window is not resized to make room for the soft keyboard, and the contents of the window are automatically panned so that the current focus is never obscured by the keyboard and users can always see what they are typing.
adjustNothing
Do nothing with layouts

Android - ScrollView activity hosted in TabActivity and windowSoftInputMode

I have a TabActivity which has the tabs across the bottom of the screen. My first tab hosts an activity which consists of a fixed header layout at the top of the screen, and a ScrollView beneath it which contains several EditText controls. The ScrollView scrolls it's content fine between the header bar and the bottom tabs, the problem occurs when an EditText is tapped and the soft keyboard appears. I understand to control the behaviour of the views when the keyboard appears I need to use the windowSoftInputMode attribute in the manifest XML file. However I've tried both the following settings :
adjustResize - Gives the correct functionality for the ScrollView and the header layout remains fixed at the top of the screen. However the tab bar controls are pushed up on top of the keyboard.
adjustPan - The tab bar controls remain at the bottom of the screen beneath the keyboard (which is what I want) but the other views are pushed up by the keyboard meaning the header layout gets pushed up off the screen.
It seems I need characteristics of both settings, but they can't be used together. I've heard of the setting adjustNothing but if I try this my project fails to build as it doesn't recognise this setting. I guess I need my tab host activity to have adjustPan but my content activity to have adjustResize but it seems you can't combine the two as it's the tab host activity that takes precedence.
Any help greatly appreciated.
In the absence of any direct solution for this, I have resorted to a kind of hack. I have set my TabHost activity to adjustResize and then written code to hide/unhide the tab bar controls (TabWidget) when the soft keyboard appears/disappears. I managed to get a pretty good result in the end, using the technique here : Adjust layout when soft keyboard is on to detect the keyboard appearing/disappearing.

Smooth scrolling layout when keyboard comes up?

Currently, when an EditText comes into focus and the keyboard comes up, the keyboard covers the form layout for a second, then the layout container resizes to expose the form, as illustrated below.
I'd like the layout to resize smoothly as the keyboard rises up. Is this possible?
Add this in your in the manifest:
android:windowSoftInputMode="adjustResize|stateVisible"

Categories

Resources