【问题标题】:Hide soft keyboard on application load在应用程序加载时隐藏软键盘
【发布时间】:2011-09-01 15:16:38
【问题描述】:

我有一个应用程序,主视图上有一个EditText 元素。 这意味着当我的应用程序加载时,默认情况下会出现软键盘。

我希望能够在加载时隐藏键盘, 所以在我点击EditText 视图之前它不会显示。

我该如何管理?

【问题讨论】:

    标签: android keyboard load hide android-edittext


    【解决方案1】:

    在你的AndroidManifest.xml

    <activity android:name="com.your.package.ActivityName"
              android:windowSoftInputMode="stateHidden"  />
    

    更多关于windowSoftInputMode的信息可以在here找到。

    当用户进入新的 Activity 时,此设置将隐藏软键盘(即使 EditText 控件获得焦点)。只有当用户点击编辑框控件时才会显示软键盘。

    【讨论】:

    • 也许我不太懂英文,你在哪里看到仅当用户单击编辑框时显示的解释?文档说:“当用户选择活动时,软键盘被隐藏——也就是说,当用户肯定地向前导航到活动时,而不是因为离开另一个活动而返回到活动。”。不要误会我的意思。你的解释很清楚。但文档不是。
    【解决方案2】:

    你可以做一些更简单的事情。将此添加到 LinearLayout(或任何其他作为根的布局):

    <LinearLayout
    ...
    android:focusable="true"
    android:focusableInTouchMode="true"
    ...
    />
    

    【讨论】:

    • 接受的答案对我不起作用,我已经设置了 stateHidden 。这个建议有效。我将其应用于 XML 布局:父视图组上的 android:focusable="true" 和 android:focusableInTouchMode="true"。
    【解决方案3】:
    InputMethodManager imm = 
        (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
    

    这将在所有情况下隐藏(即使 EditView 具有焦点):

     EditText editView = (EditText) findViewById(R.id.editTextConvertValue);
     editView.setInputType(InputType.TYPE_NULL);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-29
      • 1970-01-01
      • 2013-10-24
      • 1970-01-01
      • 2014-12-13
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      相关资源
      最近更新 更多