Оптимизация spinner

151
15 августа 2021, 06:30

Мой кастомный Spinner при первом клике на него долго открывается (~3 сек). Он состоит из 25 обьектов класса Person

public static class Person{
        private String name;
        private Drawable ic;
        Person(String name,Drawable ic){
            this.name=name;
            this.ic=ic;
        }
        public Drawable getIc() {
            return ic;
        }
        public String getName() {
            return name;
        }
    }

При последующих кликах открывается примерно за ~1 сек.

Но в некоторых приложения я смотрю и вижу что кастомный Spinner имеет более 30 обьектов с ImageView и TextView и открывается моментально. Хотелось бы советов как достичь такого же результата.

Мой адаптер

private class AdapterSpinner extends ArrayAdapter<Person> {
        private ArrayList<Person> objects;
        public AdapterSpinner(Context context, int resource,ArrayList<Person> objects) {
            super(context, resource,objects);
            this.objects=new ArrayList<>();
            this.objects.addAll(objects);
        }
        @Override
        public View getDropDownView(int position, View convertView, ViewGroup parent) {
            return getDropDownSpinnerView(position, convertView, parent);
        }
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            return getSpinnerView(position, convertView, parent);
        }
        public View getDropDownSpinnerView(int position, View convertView,
                                  ViewGroup parent) {
            LayoutInflater inflater = getLayoutInflater();
            View row = inflater.inflate(R.layout.types_dropdown_spinner, parent, false);
            TextView text = row.findViewById(R.id.text);
            text.setText(objects.get(position).getName());
            ImageView icon = row.findViewById(R.id.ic);
            icon.setImageDrawable(objects.get(position).getIc());
            return row;
        }
        public View getSpinnerView(int position, View convertView,
                                  ViewGroup parent) {
            LayoutInflater inflater = getLayoutInflater();
            View row = inflater.inflate(R.layout.types_spinner, parent, false);
            ImageView icon =  row.findViewById(R.id.ic);
            icon.setImageDrawable(objects.get(position).getIc());
            return row;
        }
    }
READ ALSO
Internet Explorer и Class JS

Internet Explorer и Class JS

Столкнулся с проблемойИмеется js class

112
Определение адреса и редирект

Определение адреса и редирект

Есть простой скрипт моментального редиректа:

210
Как раскодировать файл docx из json?

Как раскодировать файл docx из json?

На http запрос я получаю следующий JSON:

162
Не меняется отображение компонента angular 8

Не меняется отображение компонента angular 8

ЗдравсвуйтеНе могу понять почему при срабатывании makePushNotification() выполняется функция done() только в блоке else как нужно

167