Как увеличить высоту каждого элемента в выпадающем списке Android Spinner? - PullRequest
0 голосов
/ 10 апреля 2019

Когда я использую этот код:

spinner_times_adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, times_array);
spinner_times_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner_time.setAdapter(spinner_times_adapter);

Я получаю правильную высоту элементов в выпадающем списке.

Но когда я использую пользовательский адаптер, подобный этому:

spinner_dates_adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, dates_array){
            public View getView(int position, View convertView, ViewGroup parent) {
                TextView tv = (TextView) super.getView(position, convertView, parent);
                boolean red = isRed(position);
                if(red){tv.setTextColor(Color.RED);}
                else{tv.setTextColor(Color.WHITE);}
                return tv;
            }

            public boolean isRed(int position) {
                String val = dateBools_array.get(position);
                boolean isRedBool;
                if(val.equals("0")){
                    isRedBool = true;
                }
                else{
                    isRedBool = false;
                }
                return isRedBool;
            }

            @Override
            public boolean areAllItemsEnabled() {
                return true;
            }

            @Override
            public View getDropDownView(int position, View convertView,android.view.ViewGroup parent){
                View v = convertView;
                if (v == null) {
                    Context mContext = this.getContext();
                    LayoutInflater vi = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                    // Androids orginal spinner view item
                    v = vi.inflate(android.R.layout.simple_spinner_dropdown_item, null);
                }
                // The text view of the spinner list view
                TextView tv = (TextView) v.findViewById(android.R.id.text1);
                String val = dates_array.get(position);
                // remove the extra text here
                tv.setText(val.replace(":RED", ""));

                boolean red = isRed(position);
                if(red){tv.setTextColor(Color.RED);}
                else{tv.setTextColor(Color.WHITE);}

                return v;
            }
        };
        spinner_dates_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner_date.setAdapter(spinner_dates_adapter);

Между элементами больше нет пустого пространства, что затрудняет выбор нужного элемента на моем мобильном телефоне.

Что я делаю не так и как мне увеличить высотуэлемент в выпадающем списке, чтобы пользователи могли сделать правильный выбор?

...