Как я могу управлять высотой элементов вращающегося устройства Android? - PullRequest
17 голосов
/ 13 июня 2010

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

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

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

Ответы [ 2 ]

44 голосов
/ 13 июня 2010

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

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

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);
13 голосов
/ 01 июня 2011

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

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

Вот фрагмент из Образцы / андроид-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 должно использоваться только для выпадающих элементов. В противном случае стрелка вращения растягивается, и она также отображает выпадающий круг выбора на дисплее.

...