Remove Spacing or Padding in android Spinner

后端 未结 14 1850
旧时难觅i
旧时难觅i 2020-12-15 16:01

I\'m using android spinner and edittext from support lib v21. I would like to align text to left the same like edittext as shown in figure. But, deafult spinner include spac

14条回答
  •  春和景丽
    2020-12-15 16:47

    The layout for TextView that is displayed in your Spinner comes from your SpinnerAdapter, which provides 2 methods:

    • getView(position, convertView, parent): returns View for collapsed state, you can override this to return different layouts for different selected item
    • getDropdownView(position, convertView, parent): return View for each dropdown item in expanded state (after you click Spinner to open popup/dialog for selection)

    In your case you should override your SpinnerAdapter.getView(position, convertView, parent) and inflate the layout with padding/spacing of your choice.

    For example:

    spinner.setAdapter(new MyAdapter());
    

    MyAdapter.java

    class MyAdapter implements SpinnerAdapter {
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            if (convertView == null) {
                convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.spinner_item, parent, false);
            }
            // bind your data here
            return convertView;
        }
        // other implementation
    }
    

    res/layout/spinner_item.xml

    
    
    

    You can also conveniently use one of the framework provided SpinnerAdapter indirect subclasses (ArrayAdapter, BaseAdapter, CursorAdapter, ResourceCursorAdapter, SimpleAdapter, SimpleCursorAdapter, ThemedSpinnerAdapter), just make sure to supply the correct layout that would be used by getView() method.

提交回复
热议问题