1

我在我的应用程序中使用 [SlidingMenu][1]。我使用 Viewpager 在一个片段的选项卡中显示三个片段。三个片段在EditTexts里面。所以我的 XML XML 是这样的:LinearLayoutsScrollView

RelativeLayout>ScrollView>LinearLayout>EditText.

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

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

编辑:

当我EditTexts从其他两个碎片中移除时,它很顺利。但只有当三个片段都拥有EditTexts时,它才会变得迟缓。

4

1 回答 1

4

我通过添加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
                }

            }
        });

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

于 2014-10-28T07:33:26.250 回答