当前位置:  开发笔记 > 编程语言 > 正文

如何为自动完成文本视图适配器设置边距

如何解决《如何为自动完成文本视图适配器设置边距》经验,为你挑选了1个好方法。

我已经autocompletetextview在工具栏内设置了。当用户提供搜索查询时,我有一个适配器(添加了一些用于测试的虚拟数据),可以显示基于搜索查询的结果。

问题是适配器宽度设置为autocompletetextview宽度。但是在这里,我希望将适配器宽度设置为工具栏宽度,以及工具栏和适配器之间的边距。

这是我写的代码:

searchView = (AutoCompleteTextView) findViewById(R.id.searchView);
SearchAdapter searchAdapter = new SearchAdapter(NavigationDrawerActivity.this,searchResults,searchView);
        searchView.setAdapter(searchAdapter);

这是我的适配器:

public class SearchAdapter extends ArrayAdapter {

    private boolean mAnimate;
    private AutoCompleteTextView mSearch;
    public SearchAdapter(Context context, List options, AutoCompleteTextView search) {
        super(context, 0, options);
        mSearch = search;
    }

    int count = 0;

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        SearchResult option = getItem(position);
        if (convertView == null) {
            convertView = LayoutInflater.from(getContext()).inflate(
                    R.layout.search_option, parent, false);

         /*   if (true) {
                Animation anim = AnimationUtils.loadAnimation(getContext(),
                        R.anim.anim_down);
                anim.setDuration(400);
                convertView.startAnimation(anim);
                if (count == this.getCount()) {
                    mAnimate = false;
                }
                count++;
            }*/
        }

        View border = convertView.findViewById(R.id.border);
        if (position == 0) {
            border.setVisibility(View.VISIBLE);
        } else {
            border.setVisibility(View.GONE);
        }
        final TextView title = (TextView) convertView
                .findViewById(R.id.title);
        title.setText(option.title);
        ImageView icon = (ImageView) convertView.findViewById(R.id.icon);
        icon.setImageDrawable(option.icon);
        ImageView up = (ImageView) convertView.findViewById(R.id.up);
        up.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                mSearch.setText(title.getText().toString());
                mSearch.setSelection(mSearch.getText().length());
            }
        });

        return convertView;
    }
}

这是我的适配器行布局:




    

    

    

    


有了上面的代码,我将变成这样: 需要将适配器对齐到工具栏宽​​度, 我尝试这样设置适配器宽度:

 Rect screenSize = new Rect();
        getWindowManager().getDefaultDisplay().getRectSize(screenSize);
        // screen width
        int screenWidth = screenSize.width();
        int adapterMargin = (int)getResources().getDimension(R.dimen.adapter_margin);
        searchView.setDropDownWidth(screenWidth - adapterMargin);

但是这里的问题是我无法获得正确的页边距,如下所示: 设置了适配器宽度的屏幕

请帮助我解决该问题。



1> Manikanta..:

看起来您想将适配器宽度设置为工具栏宽度,将以下行添加到代码中即可使用:

searchView.setDropDownAnchor(toolbar.getId());

如果您还有其他疑问,请在下面评论

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有