软键盘弹出并在片段中缓慢隐藏,使打字缓慢

时间:2014-10-27 10:54:33

标签: android android-edittext android-viewpager android-keypad window-soft-input-mode

我在我的应用中使用[SlidingMenu] [1]。我使用Viewpager在片段中的选项卡中显示三个片段。 EditTexts内的三个片段LinearLayouts位于ScrollView。所以我的XML XMl是这样的:

RelativeLayout>ScrollView>LinearLayout>EditText

将焦点更改为每个EditText后,键入开始非常缓慢(需要1-2秒才能响应)。我认为这是因为软键盘每次尝试调整大小或平移。所以我尝试了windowSoftInputMode的所有可能值。什么都行不通。我在Activity中使用了相同的XML,其中输入非常流畅。打字完成后(当用户点击IME完成按钮时),键盘隐藏非常慢(需要3秒)。可能是什么问题呢?以及任何避免的解决方法?

顺便说一句,我没有为TextWatchers设置任何EditTexts

修改

当我从其他两个片段中删除EditTexts时,它很顺利。但只有当所有三个片段都有EditTexts时,它才会缓慢。

1 个答案:

答案 0 :(得分:3)

我通过添加android:windowSoftInputMode="adjustNothing"来避免这种情况,editText.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(View v, boolean hasFocus) { if (hasFocus) { scroll.scrollTo(rootView.getWidth(), rootView.getHeight()); //rootView is my parentView of the fragment } } }); 没有调整大小也没有滚动。并添加了Focus监听器来编辑位于屏幕底部的文本,以便在输入时用户可以看到它们。

{{1}}

但是,如果有人知道优雅的解决方案,请发布。