Мы позвонили requestFocus
, чтобы сфокусироваться на EditText
автоматически, но иногда он работает, или он не работает. поэтому мы добавили runnable в поток пользовательского интерфейса, чтобы сосредоточиться на нем.Иногда почему requestFocus() не работает?
view.post(new Runnable() {
@Override
public void run() {
view.requestFocus();
InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view, InputMethodManager.SHOW_FORCED);
}
});
Наконец-то мы знаем, что это хорошо работает, но мне действительно интересно. Зачем? Есть ли кто-нибудь, кто это знает?
UI поток основной поток в Android, Что yiur путаница? –
Основная тема и поток пользовательского интерфейса - это то же самое, что и они являются одним и тем же объектом. Таким образом, ваше предположение неверно, и могут возникнуть другие проблемы (в частности, сосредоточиться на правах собственности между родительскими и дочерними элементами). Я предлагаю вам взглянуть на вашу иерархию взглядов и убедиться, что это не какой-то другой взгляд, который поглощает фокус. – Dibzmania
@OlegBogdanov ** Основная тема не всегда - пользовательский интерфейс **. Прочтите документы. – Enzokie