Mam aktywność bez widżetów podrzędnych, a odpowiadający jej plik xml to:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myLayout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:focusable="true"
>
</LinearLayout>
i chcę programowo otwierać miękką klawiaturę podczas rozpoczynania działania. a do tej pory próbowałem:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
if (inputMethodManager != null) {
inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
}
Daj mi wskazówki.
android
android-softkeyboard
Vignesh
źródło
źródło
Odpowiedzi:
Użyłem następujących wierszy, aby ręcznie wyświetlić klawiaturę programową wewnątrz zdarzenia onclick, a klawiatura jest widoczna.
Ale nadal nie mogę otworzyć tego, gdy działanie jest otwierane, więc czy jest na to jakieś rozwiązanie?
źródło
W pliku manifestu spróbuj dodać następujące elementy do tego
<activity>
, które chcesz wyświetlać na klawiaturze po rozpoczęciu działania:android:windowSoftInputMode="stateVisible"
Powinno to spowodować, że klawiatura stanie się widoczna po rozpoczęciu działania.
Aby uzyskać więcej opcji, zapoznaj się z dokumentacją .
źródło
Proszę postępować zgodnie z poniższym kodem. Jestem pewien, że Twój problem zostanie rozwiązany.
źródło
To działa
lub
źródło
Wszystko, czego potrzebowałem, to odsłonić klawiaturę w bardzo precyzyjnym momencie. To zadziałało dla mnie! Dzięki Benites.
I w bardzo precyzyjnym momencie:
źródło
postDelayed( runnable, 500 /* msec */ );
Użyłem następujących wierszy, aby ręcznie wyświetlić klawiaturę programową wewnątrz zdarzenia onclick.
źródło
Umieść to w metodzie onResume:
runnable jest potrzebny, ponieważ gdy system operacyjny uruchamia metodę onResume, nie możesz być pewien, że wszystkie widoki są rysowane, więc metoda post wywoływana z układu głównego sprawia, że czeka, aż każdy widok będzie gotowy.
źródło
wygląda na to, że to działa
wydaje się, że to działa lepiej: w manifest:
wygląda na to, że manifest działa w systemie Android 4.2.2, ale nie działa w systemie Android 4.0.3
źródło
w onCreate sposobu działania lub onActivityCreated fragmentu
źródło
Użyłem w ten sposób do programowego wyświetlania miękkiej klawiatury i działa to dla mnie, aby zapobiec automatycznej zmianie rozmiaru ekranu podczas uruchamiania klawiatury.
W oczywisty sposób:
W XXXActvity:
Zakładam, że zaoszczędzi to innym czasu na poszukiwanie tego problemu.
źródło
Kotlin
Jawa
źródło
źródło
Użyłem go jako singletona:
Użyj go w swojej działalności, na przykład:
źródło
To działa:
I nazywasz tę metodę w ten sposób:
źródło
InputMethodManager.SHOW_FORCED nie jest dobrym wyborem. Jeśli używasz tego ustawienia, powinieneś zarządzać ukrywaniem stanu klawiatury. Moja sugestia jest następująca;
Możesz także skupić się na wyświetlaniu (zwykle EditText), przyjmując parametry. To sprawia, że jest to bardziej użyteczna funkcja
aby uzyskać więcej informacji o InputMethodManager.SHOW_IMPLICIT i SHOW_FORCED; InputMethodManager
źródło
Oto wymagany kod źródłowy:
Aby uzyskać szczegółowe informacje, przejdź przez ten link. To mi pomogło. https://github.com/Nikhillosalka/Keyboard/blob/master/README.md
źródło
Użyj powyższego kodu w onResume (), aby otworzyć klawiaturę programową
źródło
Podobnie jak w przypadku odpowiedzi @ShimonDoodkin, oto co zrobiłem we fragmencie.
https://stackoverflow.com/a/29229865/2413303
Gdzie
ShowKeyboard
jestPo udanym wprowadzeniu upewniam się, że ukryłem klawiaturę
źródło
źródło
Odpowiedzi jest już za dużo, ale poza tym nic nie działało
Używałem
showSoftInput
zSHOW_FORCED
I moja działalność tak
mam nadzieję, że to komuś pomoże
źródło
Opublikuj tę metodę w swojej podstawowej aktywności i używaj jej do innych działań, takich jak talizman
źródło