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

时间:2013-03-25 06:52:46

标签: android image background android-softkeyboard

我有一个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();

    }
});

在对话框的onClick按钮上使用 startActivityForResult(intent,requestCode)加载下一个活动。但是在加载下一个活动之前,隐藏键盘背景图像后显示黑色底栏比如this

返回此活动时,背景图像会暂时显示。 我尝试 intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 并在清单文件中为此活动设置 android:windowSoftInputMode =“adjustPan”。它对我不起作用。这里有什么问题以及如何解决这个问题?

先谢谢

1 个答案:

答案 0 :(得分:0)

关闭键盘后,请等待一段带有runnable的延迟,以便为您的活动背景留出一些时间进行重新绘制。

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