0

我有一个带有 EditTexts 的 ExpandableListView。如果用户在虚拟键盘启动时尝试滚动,我会收到错误消息:

java.lang.IllegalArgumentException: parameter must be a descendant of this view

我试图找到解决此问题的方法,有人建议删除主题。好吧,它解决了崩溃的问题,但是这次我无法编辑 EditText。出现虚拟键盘(即使我有 小写字母android:capitalize="characters")但按下按钮时没有任何反应。

如果我将任何主题与 .Fullscreen 一起使用:
虚拟键盘按预期工作,但如果在键盘打开的情况下滚动应用程序会崩溃

如果我使用没有 .Fullscreen 的任何主题:
虚拟键盘不起作用,不再崩溃。

键盘启动时有什么方法可以防止垂直滚动?或者有什么其他建议?

4

1 回答 1

1

Navneeth Gopalakrishnan回答加:

        expandList.setOnScrollListener(new OnScrollListener() {
            public void onScrollStateChanged(AbsListView view, int scrollState) {
                InputMethodManager inputManager = (InputMethodManager) MyApplication.getAppContext().getSystemService(Context.INPUT_METHOD_SERVICE);
                if (getWindow().getCurrentFocus() != null) {
                    inputManager.hideSoftInputFromWindow(getWindow().getCurrentFocus().getWindowToken(), 0);
                }
            }

            public void onScroll(AbsListView view, int firstVisibleItem,
                    int visibleItemCount, int totalItemCount) {
            }
       });

解决了这个问题。

于 2013-04-01T09:03:52.870 回答