Подтвердить что ты не робот

Как я могу управлять высотой элементов spinner android?

У меня есть счетчик android, который заполняется списком строк с использованием ArrayAdapter, и он работает нормально, однако из-за того, как отображается счетчик, я столкнулся с проблемой высоты отображения с элементами списка.

На первый взгляд кажется, что ArrayAdapter может использовать один макет для отображения параметров, которые приводят к проблеме, с которой я сталкиваюсь. При отображении текущего элемента в счетчике (когда пользователь не выбирает новый элемент из списка), счетчик накладывает текст так, чтобы счетчик был разумным размером для щелчка. Однако, когда пользователь нажимает на него и отображает список для выбора нового элемента, представленные элементы списка являются малыми по высоте. Если я использую макет элемента, который представляет элементы списка на разумной высоте, то сам прядильник становится невероятно огромным из-за его собственного заполнения элемента списка.

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

4b9b3361

Ответ 1

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

У меня есть этот код:

adapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, cGroups,
                new String[] {
                        "name", "_id"
                }, new int[] {
                    android.R.id.text1
                });
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

Ответ 2

Да, приведенный выше ответ правильный.

Мне потребовалось много времени, чтобы найти это, потому что это неправильно в сэмп файлах для Android 2.2. И я с трудом принимал это.

Вот фрагмент из Образцы/андроид-12/Вертушка/SRC/COM/Android/пример/вертушка/SpinnerActivity.java:

       this.mAdapter = ArrayAdapter.createFromResource(this, R.array.Planets,
                android.R.layout.simple_spinner_dropdown_item);

тогда как там должно быть android.R.layout.simple_spinner_item, а simple_spinner_dropdown_item должно использоваться только для выпадающих элементов. В противном случае стрелка прядильщика будет растянута, и она также отобразит круг выпадающего списка на дисплей.