Podczas korzystania z AutoCompleteTextView
pojawi się lista sugestii rozwijanych z nadal widoczną klawiaturą oprogramowania. Ma to sens, ponieważ często znacznie wydajniejsze jest wpisywanie kolejnych znaków w celu zawężenia listy.AutoCompleteTextView: Usuń miękką klawiaturę z tyłu naciśnij zamiast sugestii
Ale jeśli użytkownik chce nawigować po liście sugestii, staje się bardzo uciążliwy, gdy klawiatura oprogramowania jest nadal w ruchu (jest to jeszcze większy problem, gdy urządzenie znajduje się w orientacji poziomej). Poruszanie się po liście jest o wiele łatwiejsze, gdy klawiatura nie zajmuje miejsca na ekranie. Niestety domyślne zachowanie usuwa listę najpierw po naciśnięciu klawisza "wstecz" (mimo że w wersjach oprogramowania klawisza "wstecz" jest wyświetlany obraz z napisem "naciśnięcie tego spowoduje ukrycie klawiatury").
Oto Barebone przykład, który pokazuje, co mówię:
public class Main2 extends Activity {
private static final String[] items = {
"One",
"Two",
"Three",
"Four",
"Five"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AutoCompleteTextView actv = new AutoCompleteTextView(this);
actv.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
actv.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items));
actv.setThreshold(1);
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
ll.addView(actv);
setContentView(ll);
}
}
Poza faktem, że jest nieintuicyjne (tył wskazówkę klucz sugeruje, że tylna naciśnij zostanie wysłany na klawiaturze) sprawia, że poruszanie się po nim jest niezwykle męczące.
Jaki jest najmniej nachalny sposób (np łapanie tyłu w dniu onBackPressed()
w każdej działalności i routing go odpowiednio na pewno nie będzie idealny), aby pierwszy z powrotem prasa ukryć klawiaturę, a drugi usunąć listę podpowiedzi ?
dobre rozwiązanie, ale nie wydają się działać. Klucz jest poprawnie chwytany i rozpoznawany (to znaczy wywoływany jest hideSoftInputFromWindow), ale klawiatura faktycznie nie znika. Czy może się zderzyć z czymś w "EditText", który utrzymuje klawiaturę, gdy widok jest ostry? –
Czy możesz spróbować getApplicationWindowToken() zamiast –
Ten sam wynik nadal niestety –