微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android AutoCompleteTextView 在输入建议列表时重叠

如何解决Android AutoCompleteTextView 在输入建议列表时重叠

我正在尝试使用 AutocompleteTextview 来实现 HashTag 和提及。它工作正常。

根据输入的关键字,我在 AutocompleteTextview 中设置适配器。为此,我正在使用 TextWatcher。它正在显示结果。直到这个工作正常。但是当我输入时,建议列表是重叠的。

在图像中,黑色阴影是因为多个页面。当 AutocompleteTextview 中的文本发生变化时,页数会增加

   autoCompleteTextview.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s,int start,int count,int after) {

        }

        @Override
        public void onTextChanged(CharSequence s,int before,int count) {
            if (s.toString().startsWith("@")) {
                   setupTagUserAutocomplete(data);
               } 
            else if (s.toString().startsWith("#")) {
                setupHashAutocomplete(list);
            }
        }

        @Override
        public void afterTextChanged(Editable s) {

        }
    });

如何避免这种情况?

enter image description here

解决方法

您不必使用 TextWatcher。每次更改文本时,使用 TextWatcher 都会创建一个新的建议列表。 为此,您必须使用适配器。 这就是它创建这么多建议列表的原因。

您必须创建自定义适配器,因为存在两个条件(@ 和 #)的自定义要求。

这里有一个指向 AutoCompleteTextView 教程的链接供您阅读。我希望你觉得这个有用。

https://www.studytonight.com/android/autocomplete-textview

在上面的教程中参考步骤,但不是 ArrayAdapter 创建一个自定义的。在该适配器内,您可以根据文本获得该列表。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。