【问题标题】:How to keep keyboard on fragment replace?如何让键盘保持片段替换?
【发布时间】:2016-12-04 10:45:19
【问题描述】:

我有两个片段,每个片段都有编辑文本。所以我想要实现的是每次创建片段时,重点是编辑文本并显示键盘。此外,当我替换这些片段时,我不想隐藏并再次显示键盘,但使用我的解决方案,这就是现在正在发生的事情。

我在清单中将此属性设置为活动:

android:windowSoftInputMode="adjustResize|stateAlwaysVisible|stateUnchanged"

并且每个片段都在onResume()中调用了这个方法:

private void focusOnEditText() {
    mTextInputEditText.setFocusableInTouchMode(true);
    mTextInputEditText.requestFocus();
    InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.showSoftInput(mTextInputEditText, InputMethodManager.SHOW_IMPLICIT);
}

【问题讨论】:

  • 你在使用 viewPager 吗?
  • 不,简单的替换片段。

标签: android android-fragments


【解决方案1】:

阅读文档 toggleSoftInput

private void focusOnEditText() {
        mTextInputEditText.setFocusableInTouchMode(true);
        mTextInputEditText.requestFocus();
        InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
        imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
    }

【讨论】:

  • 不幸的是,现在键盘在替换片段后隐藏了。
  • 在fragment的onCreateView()中调用该方法。
  • 如果视图是在 onCreateView 方法中创建的并且我指的是 EditText,我该怎么做。您甚至尝试过您的代码吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-29
  • 2012-06-04
  • 1970-01-01
  • 2020-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多