Mam pionową przesuwaną szufladę na dole mojej aplikacji. Kiedy miękka klawiatura się otwiera, przesuwa zaczep szuflady do góry, tak że siedzi na górze klawiatury. Naprawdę chcę, aby pozostała na dole ekranu, ukrywając się, gdy pokazana jest klawiatura.
Ktoś jeszcze napotkał ten problem? Wiesz jak to naprawić?
Odpowiedzi:
Możesz po prostu zmienić
windowSoftInputMode
flagę aktywności naadjustPan
w swoimAndroidMainfest.xml
pliku wewnątrz tagu aktywności.Sprawdź oficjalną dokumentację, aby uzyskać więcej informacji.
źródło
Żadna z odpowiedzi nie działała dla mnie, ale udało się to:
źródło
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
do programowego ustawienia tej wartościW moim przypadku powodem, dla którego przyciski zostały wypchnięte, był fakt, że widok nad nimi był a
ScrollView
, i zapadł się wraz z przyciskami podniesionymi nad klawiaturą, bez względu na to, jaką wartośćandroid:windowSoftInputMode
ustawiłem.Byłem w stanie ominąć mój dolny rząd przycisków podnoszony przez miękką klawiaturę, ustawiając
android:isScrollContainer="false"
goScrollView
nad przyciskami.źródło
Możesz spróbować dodać ten atrybut dynamicznie, umieszczając następujący kod w
onCreate
metodzie swojej działalności:To działało dla mnie, ale to:
nie.
źródło
android:windowSoftInputMode="adjustPan"
plik w AndroidManifest.xml?getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
” we fragmencie?FragmentActivity
) i niektóre widoki dołączone do niego (widoki rozciągają się odRelativeLayout
). Więc w kłopotliwym widoku zrobiłemcontroller.getWindow()...
tak, jak powiedziałeś. DziałaTe odpowiedzi tutaj mi nie pomogły. Więc próbowałem tego:
To działało jak urok, teraz nagłówek mojej aplikacji nie znika. Jest płynniejszy.
źródło
TabLayout
. Problem zniknął, gdy ustawiłem jego widocznośćView.GONE
. Może nadszedł czas na przeprojektowanie mojego układu.Aby to zrobić programowo we fragmencie, możesz użyć następującego kodu
Umieść to w onResume ()
źródło
Dla przyszłych czytelników.
Chciałem mieć konkretną kontrolę nad tym problemem, więc właśnie to zrobiłem:
Przed fragmentem lub działaniem ukryj inne widoki (które nie są potrzebne, gdy klawiatura jest podniesiona), a następnie przywróć je, aby rozwiązać ten problem:
źródło
view.post(Runnable runnable)
i ustawiłem widoczność stamtąd. Okazało się dla mnie świetneTylko jedna linia do dodania ...
Dodaj
android:windowSoftInputMode="stateHidden|adjustPan"
wymaganą aktywnośćmanifest file
.Właśnie rozwiązałem :) :)
źródło
W przypadku użytkowników Xamarin dodaj ten kod do atrybutu Activity klasy MainActivity,
lub możesz dodać ten kod
Window.SetSoftInputMode(Android.Views.SoftInput.AdjustNothing)
do metody OnCreate klasy MainActivity.źródło
Ten działał dla mnie
źródło
Do tej pory odpowiedzi mi nie pomogły, ponieważ mam przycisk i pole textInput (obok siebie) pod tekstem TextView, które wciąż były ukryte przez klawiaturę, ale to rozwiązało mój problem:
źródło
Dodaj następujący kod do „działania” pliku manifestu.
źródło
Ten kod działa.
źródło
To było najlepsze, co działało dla mnie
Spróbuj!
źródło
Cóż, obserwowałem te odpowiedzi, ale w moim przypadku wpadłem w ten sam problem i znalazłem schronienie dzięki bardzo przydatnemu i najłatwiejszemu rozwiązaniu, które polega na umieszczeniu bardzo małego niewinnego atrybutu w tagu Scrollview znajdującym się w pliku xml. To jest
Powodzenia!
źródło
Ten działa dla mnie.
źródło
Widok przewijania:
jeśli po dodaniu
android:windowSoftInputMode="stateHidden|adjustPan"
w Manifeście Androida i nadal nie działa.Może to mieć wpływ, ponieważ gdy pojawi się klawiatura, przejdzie do widoku przewijania, a jeśli twój przycisk / jakiekolwiek obiekty nie znajdują się w widoku przewijania, wówczas obiekty podążą za klawiaturą i przesuną swoją pozycję.
Sprawdź xml tam, gdzie jest twój przycisk i upewnij się, że znajduje się pod przewijaniem Wyświetl nawias, a nie poza nim.
Mam nadzieję, że to pomaga. :RE
źródło
W moim przypadku potrzebowałem klawiatury, aby pozostała ukryta, a tuż po kliknięciu przycisku mój układ musi zostać dostosowany, więc po prostu dodałem to polecenie do manifestu i było bardzo dobrze.
źródło
Gdy chcesz ukryć widok po otwarciu klawiatury.
Dodaj to do pliku aktywności w pliku manifestu
źródło
Żadne z nich nie działało dla mnie, spróbuj tego
źródło
Główne okno działania nie zmieni rozmiaru, aby zrobić miejsce na klawiaturę programową. Zamiast tego zawartość okna zostanie automatycznie panoramowana, aby bieżący fokus nigdy nie był zasłonięty przez klawiaturę, a użytkownicy zawsze mogli zobaczyć, co piszą.
To może być lepsze rozwiązanie tego, czego pragniesz.
źródło
Spróbuj użyć tego:
źródło
Ten kod może ci pomóc. Użyj go w swojej
oncreate
metodzie.źródło
Uwzględnij w pliku manifestu jako działanie, które chcesz wyświetlić. Ale upewnij się, że nie używasz działania na pełnym ekranie
źródło
@manifest w twojej działalności:
źródło
Rozwiązałem problem, dodając
W pliku manifestu dodaj.
i ustawienie ograniczenia Recyclerviews na isScrollContainer na false.
źródło