Jak przenieść układ w górę, gdy miękka klawiatura jest wyświetlana android

Mam ekran logowania z dwoma EditTexts i przycisk logowania w moim układzie. Problem polega na tym, że gdy zaczynam pisać, wyświetlana jest miękka klawiatura i zakrywa przycisk logowania. Jak mogę przesunąć układ w górę lub nad klawiaturą, gdy się pojawi?

Nie chcę używać ScrollView, po prostu chcę go zaimplementować bez przewijania w dół. Proszę, zaproponuj mi jakiś sposób. Z góry dzięki.

Author: Juan José Melero Gómez, 2012-02-02

16 answers

Ustaw właściwość windowSoftInputMode na adjustPan i adjustResize

<activity android:windowSoftInputMode="adjustPan|adjustResize"> </activity>
 61
Author: jeet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-24 23:19:08

Spróbuj tego w pliku manifest Androida odpowiadającym aktywności.

<activity android:windowSoftInputMode="adjustPan"> </activity>
 29
Author: jency,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-02 13:49:46

Użyj tego kodu w metodzie onCreate():

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
 23
Author: Bobs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-25 09:11:27

Tylko

android:windowSoftInputMode="adjustResize"

W Twoim znaczniku aktywności wewnątrz pliku manifestu wykona sztuczkę

 15
Author: Bhargav Thanki,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-23 05:44:00

Umieść tę linię w czasie deklaracji aktywności w manifeście.xml

<android:windowSoftInputMode="adjustPan">
 12
Author: Dayanand Waghmare,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-15 11:53:20

Jakoś to osiągnąłem znając stan miękkiej klawiatury na urządzeniu. przesuwam układ do pozycji y, gdy klawiatura jest pokazana i przesuwam z powrotem do pierwotnej pozycji, gdy nie jest pokazana. to działa dobrze, zgodnie z te wytyczne.

 10
Author: cavallo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-17 08:16:31
android:fitsSystemWindows="true"

Dodaj właściwość na głównym układzie pliku układu i

android:windowSoftInputMode="adjustResize"

Dodaj wiersz w manifeście.plik xml na Twoim Activty

To dla mnie idealne rozwiązanie.
 7
Author: Kalsariya Devindra,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-21 05:20:12

Umieść to w deklaracji aktywności w pliku manifestu <activity android:windowSoftInputMode="adjustPan|adjustResize"> </activity>

Lub jeśli chcesz, możesz dodać metodę onCreate () swojej aktywności

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
 6
Author: Pradnya Kanase,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-28 14:35:13

To wszystko, co jest potrzebne:

<activity android:windowSoftInputMode="adjustResize"> </activity>
 3
Author: Bolling,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-25 12:59:31

Zgodnie z tym przewodnikiem , poprawnym sposobem osiągnięcia tego jest zadeklarowanie w manifeście:

<activity name="EditContactActivity"
        android:windowSoftInputMode="stateVisible|adjustResize">

    </activity>
 2
Author: David_E,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-14 21:14:45

Gdy pojawi się softkeyboard, zmienia rozmiar głównego układu, a to, co musisz zrobić, to zrobić słuchacza dla tego mainlayout i w tym słuchaczu Dodaj kod scrollT0(x,y), aby przewinąć w górę.

 2
Author: Dila Gurung,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-03 06:12:10

Jeśli pracujesz z xamarin, możesz umieścić ten kod WindowSoftInputMode =Android.Views.SoftInput.AdjustPan | Android.Views.SoftInput.AdjustResize w atrybucie aktywności głównej klasy aktywności. Na przykład, teraz atrybut activity będzie wyglądał jak poniżej

    [Activity(WindowSoftInputMode =Android.Views.SoftInput.AdjustPan | Android.Views.SoftInput.AdjustResize)]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsApplicationActivity
    {
        //some code here.
    }
 2
Author: Tushar patel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-10 05:20:45

Użyj układu względnego, który dostosuje widok, abyś mógł go zobaczyć podczas wpisywania tekstu

 0
Author: Mahesh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-03 06:49:43

To działa jak urok dla mnie

getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
 0
Author: Ishan Khanna,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-01 14:03:30

Powinieneś użyć

android:windowSoftInputMode="adjustPan|stateHidden"

W pliku AndroidManifest.xml Gdzie deklarujesz swoją aktywność. Spowoduje to dostosowanie zawartości układu, gdy klawiatura jest wyświetlana w układzie.

 0
Author: Farhan Ghaffar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-25 08:56:34

To na pewno zadziała dla Ciebie.

Android: windowSoftInputMode= "adjustPan"

 0
Author: sanjay kumar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-25 19:32:02