繁体   English   中英

当软键盘可见时,背景图像显示黑色底条

[英]Background image shows a black bottom bar when soft keyboard is visible

我有一个Android应用程序,我想在其中输入密码,如果正确,请转到新活动。 为此,我显示了一个带有EditText字段的自定义对话框。如果密码正确,则隐藏kayboard并转到下一个活动。我使用以下代码隐藏键盘

    alertBuilder.setNeutralButton("OK",
        new DialogInterface.OnClickListener() {
        @Override
         public void onClick(DialogInterface dialog, int which) {
             InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE); inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
         new Thread(new Runnable() {
         @Override
         public void run() {
              //start new acivity for result
         }
        }).start();

    }
});

并在对话框的OK按钮的onClick中的线程内使用startActivityForResult(intent,requestCode)加载下一个活动。但是在加载下一个活动之前,隐藏键盘后,背景图像显示黑色底条,例如 这个

回到该活动后,背景图像会暂时显示。 我尝试了intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 并在清单文件中为此活动设置android:windowSoftInputMode =“ adjustPan” 它对我不起作用。这是什么问题,又怎么解决呢?

提前致谢

关闭键盘后,请稍稍延迟一下,然后再运行一下,以使Activity的背景有一段时间可以重新绘制。

使用Handler程序等待较小的延迟,然后返回到UI线程。

将此添加到您的班级

private Handler mHandler = new Handler();

定义一个Runnable

private Runnable mRunnable = new Runnable() {
    public void run() {
        startActivityForResult(intent, resultCode);
    }
};

更新您的代码

alertBuilder.setNeutralButton("OK", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        InputMethodManager inputMethodManager = (InputMethodManager)getSystemService(Activity.INPUT_METHOD_SERVICE);
        inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);

        // Wait a moment and jump to the next activity.
        mHandler.postDelayed(mRunnable, 500);
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM