在对话框后请求编辑文本时不显示键盘



我有一个问题。

我做了自定义Dialog(加载旋转器)。我在降落Button。然后打开RelativeLayout表和编辑文本的工作方式像搜索。

我的问题是,当我在按钮触摸和打开布局之间显示加载器时,它侧重于EditText,但不显示键盘。当我不使用我的对话框,它工作得很好。我在前台和线程中都试过了,结果是一样的。

XML>:
        <ProgressBar
            android:layout_width="100dp"
            android:layout_height="100dp"
            android:indeterminateOnly="false"
            android:id="@+id/loader_spiner"
            android:background = "@xml/progress"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true" />
    </RelativeLayout>

:

 public void prepareLoader(){
        loader = new Dialog(context);
        loader.setContentView(R.layout.ag_loader);
        loader.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
        spinerLoader = (ProgressBar) loader.findViewById(R.id.loader_spiner);
    }
    public void showLoader(){
        spinerLoader.startAnimation(AnimationUtils.loadAnimation(this, R.xml.splash_spinner));
        loader.show();
    }
    public static void hideLoader(){
        loader.hide();
    }

在'loader.show()'中,您可以尝试使用以下代码显示键盘:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);

或:

loader.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);

或:

loader.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);

或如果不工作,再试一次:

Handler delayedRun = new Handler();
delayedRun.post(new Runnable() {
  @Override
  public void run() {
    youreditText.requestFocus();
    InputMethodManager mgr = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
    mgr.showSoftInput(youreditText, InputMethodManager.SHOW_IMPLICIT);
  }
});

我找到了一个解决方案,让键盘出现一些时间。

new android.os.Handler().postDelayed(
    new Runnable() {
        public void run() {
            if (thisSearchable) {
                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.showSoftInput(searchInput, InputMethodManager.SHOW_IMPLICIT);
            }
        }
    }, 300);

最新更新