Autocompletetextview建议列表位于键盘后面

时间:2014-03-01 15:23:52

标签: android autocomplete keyboard autocompletetextview

在寻找解决方案以便将建议清单放在键盘前时,我已经非常疲惫。

Suggestion List is behind Keyboard

键盘背后有更多建议。 当我通过将列表放在键盘前触摸/滚动此列表时,我希望能够看到这些建议。 我已经检查了许多类似的问题,但没有任何希望有效地这样做。 在THIS QUESTION上提出的建议无法解决所有设备的问题。 我也见过THIS QUESTION,但它没有帮助解决问题。

是否有任何建议如何解决此问题。

2 个答案:

答案 0 :(得分:0)

这是由于布局问题。基本上您的键盘具有焦点,因为用户正在写入,但您想要显示下拉列表。但是如果你看到下拉列表,你将看不到键盘,用户每次想要继续写作时都必须关注EditText。所以基本上你看到的行为是正确的IMO。

这里有2个选项:

1)更改布局,以便帮助中心从屏幕顶部显示,并且有足够的高度显示其所有建议。

2)限制要显示的下拉项目。由于没有本地实现方法,因为没有maximumSuggestions选项,您可以获取其中一行的高度并将其乘以X倍(X为要显示的行数)并使用{{1}设置它的高度。有关此here的更多信息。

答案 1 :(得分:-2)

public View getView(final int position, View convertView, ViewGroup parent) {

    LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    ViewHolder holder;
    if (convertView == null) {
        convertView = inflater.inflate(viewResourceId, parent, false);
        holder = new ViewHolder();
        init(convertView, holder);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    convertView.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            if (event.getAction() == MotionEvent.ACTION_DOWN) {
                InputMethodManager imm = (InputMethodManager) getContext()
                        .getSystemService(
                                Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(
                        searchView.getWindowToken(), 0);
            }

            return false;
        }
    });

    setView(position, holder);
    return convertView;
}