移除autocompletetextview弹出窗口上的过卷效果(android studio/java/xml)

dfuffjeb  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(407)

我目前正在尝试删除autocompletetextview弹出窗口上的overscroll效果,但我尝试过的所有操作都不起作用。我的autocompletetextview使用一个arrayadapter来存储关键字,并使用一个简单的布局来显示它的项目。
arrayadapter的设置:

String[] keywords = new String[] { "test", "test2", "test3", "test4", "test5" };
    ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, keywords);
    ((AutoCompleteTextView)findViewById(R.id.actvSearch)).setAdapter(adapter);

为了消除这个效果,我尝试设置autocompletetextview的overscrollmode,但这似乎对弹出窗口没有任何影响。
有没有办法将弹出窗口的overscrollmode设置为“never”或任何简单的方法(不覆盖arrayadapter类)来限制一次显示的项目数量,这样就不会出现overscroll效果?
谢谢,伊普塞隆。

r3i60tvu

r3i60tvu1#

我找到了一个解决方案,通过覆盖 getView() 方法。所以在 getView() 方法将此行添加到父级:

parent.setOverScrollMode(View.OVER_SCROLL_NEVER);

适配器如下所示

String[] keywords = new String[] { "test", "test2", "test3", "test4", "test5" };
 ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, keywords){
            @NonNull
            @Override
            public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
                parent.setOverScrollMode(View.OVER_SCROLL_NEVER);
                return super.getView(position, convertView, parent);
            }
        };
 ((AutoCompleteTextView)findViewById(R.id.actvSearch)).setAdapter(adapter);

注:以下为 parent.setOverScrollMode(View.OVER_SCROLL_NEVER); 每次滚动列表时都会调用

相关问题