Trzeba zastąpić onEvaluateInputViewShown metody InputMethodService(), aby ocenić wartość true, nawet jeśli nie jest to trudne klawiatura. Zobacz onEvaluateInputShown() i sekcję Widok miękkiego wejścia InputMethodService. Spróbuj utworzyć własną niestandardową klasę InputMethodService, aby zastąpić tę metodę.
EDYCJA: Pomocne powinno być source for onEvaluateInputShown(). Rozwiązanie powinno być tak proste, jak stworzenie własnej klasy, która rozszerza InputMethodService i nadpisuje tę jedną metodę, która ma tylko kilka linii. Pamiętaj też o dodaniu niestandardowej usługi do manifestu.
Od Źródło:.
„Przestawianie to kontrolować, gdy miękki obszar wejściowy powinien być pokazany użytkownikowi Domyślna implementacja tylko pokazuje widok wejściowego, gdy nie ma twardy klawiatura lub klawiatura jest ukryty. Jeśli zmienisz to, co to zwróci, będziesz musiał sam wywołać funkcję updateInputViewShown(), gdy zwrócona wartość może zostać zmieniona, aby umożliwić jej ponowne oszacowanie i zastosowanie. "
public boolean onEvaluateInputViewShown() {
Configuration config = getResources().getConfiguration();
return config.keyboard == Configuration.KEYBOARD_NOKEYS
|| config.hardKeyboardHidden == Configuration.KEYBOARDHIDDEN_YES;
}
Here są możliwe konfiguracje można sprawdzić. Configuration.KEYBOARD_NOKEYS nie odpowiada żadnej klawiaturze sprzętowej. Ta metoda zwraca wartość true (powinna być wyświetlana klawiatura miękka), jeśli nie ma klawiatury sprzętowej lub jeśli klawiatura sprzętowa jest ukryta. Usunięcie obydwu tych sprawdzeń i po prostu zwrócenie wartości true powinno spowodować, że klawiatura oprogramowania będzie widoczna, nawet jeśli podłączona jest klawiatura sprzętowa.
Try (nie testowane):
public boolean onEvaluateInputViewShown() {
return true;
}
Od tej wartości zwracanej nie ulegnie zmianie, nie trzeba będzie zadzwonić updateInputViewShown() samodzielnie. Jeśli zmienisz tę metodę w inny sposób, pamiętaj o tym szczególe.
Mam również ten sam rodzaj problemu. Proszę, zasugeruj mi, jak to zrobić. Zastosowałem poniższy kod, ale wciąż nie działa softkeyboard. –