有时为什么requestFocus()不起作用?

时间:2017-01-12 07:27:36

标签: android android-edittext runnable

我们已调用requestFocus自动关注EditText,但有时它会起作用或无法正常工作。所以我们将runnable添加到UI线程以专注于它。

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);
      }
    });

最后我们知道它运作良好,但我真的很好奇。为什么?有人知道吗?

1 个答案:

答案 0 :(得分:2)

在通货膨胀时调用 requestFocus()为时尚早,请尝试调用以下内容:

button.post(new Runnable(){
     @Override 
     public void run(){
        inflatedView.requestFocus();
     } });

会将此调用安排到主队列(因此​​将调用它  在主线完成其工作之后,未来)。

https://stackoverflow.com/a/21181502/7267105