从应用程序搜索启动应用程序后,Android键盘保持不变

时间:2018-08-01 04:05:50

标签: android android-layout

我有一个Android应用程序,该应用程序只有一个屏幕,并且该屏幕中没有编辑文本字段(实际上,该屏幕上没有UI元素)。

当我尝试通过在应用搜索中输入关键字名称(其明显的键盘出现以便在应用托盘中输入要搜索的应用名称)搜索该应用时,在搜索后,我点击了我的应用以打开/启动仍然会弹出键盘,直到我按“后退”按钮,键盘才会消失。当我启动我的应用程序时,键盘不应出现在该处,因为该键盘来自应用程序搜索。我看起来对UI不友好,我们该如何处理。请分享您对此的想法。

4 个答案:

答案 0 :(得分:1)

您可以在自己的活动下的清单中设置此值:

<activity
    android:name=".YourActivity"
    ....
    android:windowSoftInputMode="stateAlwaysHidden">

或者尝试像这样在onCreate中手动隐藏键盘:

//kotlin
fun hideKeyboard(context:Context, view:View){
    val inputMethodManager = 
        context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
    inputMethodManager.hideSoftInputFromWindow(view.windowToken,
                InputMethodManager.HIDE_IMPLICIT_ONLY)
}

调用这样的代码

hideKeyboard(this, findViewById<View>(android.R.id.content));

答案 1 :(得分:1)

在您的第一个活动中实现此功能,它将隐藏键盘

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
View view = activity.getCurrentFocus();
 if (view == null) {
        view = new View(activity);
    }
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);

答案 2 :(得分:0)

<activity
    android:name=".Activity"
    android:windowSoftInputMode="adjustPan|stateAlwaysHidden">
</activity>

将此行放入您的活动标签中的清单文件

答案 3 :(得分:0)

满足您需求的最佳解决方案是:-

创建一个BaseActivity

  

然后将您的所有活动扩展到BaseActivity,而不是   AppcompactActivity

然后在清单中执行此操作

<activity
    android:name=".BaseActivity"
    android:windowSoftInputMode="stateAlwaysHidden">

任何活动加载时,这不会显示键盘