【问题标题】:EditText swipes out of visible view, but keyboard remains [closed]EditText 滑出可见视图,但键盘仍然[关闭]
【发布时间】:2014-08-11 16:20:45
【问题描述】:

在我的单活动应用程序中,我有一个 ViewPager,它有一个 PagerTabStrip。假设我有两个选项卡和两个相应的片段。在片段一 (Frag1) 我有一个 EditText 视图,而在片段二 (Frag2) 上,只有一个没有可编辑文本的列表视图(只是 CheckedTextViews 的列表)。

当应用程序启动时,Frag1 可见并且焦点位于 EditText 上,因此出现软键盘。还没有问题。但是,当我滑动到另一个选项卡并且 Frag2 滑入视图并且 Frag1 不再可见时,即使可见屏幕 (Frag2) 上没有任何内容可编辑,键盘仍然存在。即使我检查了 Frag2 的 CheckedTextViews 之一,键盘仍然存在。

如何以编程方式稳健、动态地检查这种情况并隐藏键盘?

【问题讨论】:

    标签: android keyboard android-edittext hide invisible


    【解决方案1】:

    您可以在滑动事件中隐藏键盘。把它放在你的 tabselected 方法或任何你用来切换片段的方法中:

    EditText myEditText = (EditText) findViewById(R.id.myEditText);  
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
    

    希望这会有所帮助! :D

    【讨论】:

    • 这行得通,我现在就用它。谢谢!但是,我希望使它对我的特定片段更加通用。我正在检查我是否在 Frag2 上,然后我隐藏了键盘。理想情况下,每当我滚动到 any 片段时,我都想检查是否有任何小部件可能需要键盘,并且 - 如果是这样 - 将焦点设置到所述小部件并弹出键盘。如果没有小部件可以使用键盘,那么我会简单地隐藏键盘。
    猜你喜欢
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多