Как я могу управлять высотой элементов spinner android?
У меня есть счетчик android, который заполняется списком строк с использованием ArrayAdapter, и он работает нормально, однако из-за того, как отображается счетчик, я столкнулся с проблемой высоты отображения с элементами списка.
На первый взгляд кажется, что ArrayAdapter может использовать один макет для отображения параметров, которые приводят к проблеме, с которой я сталкиваюсь. При отображении текущего элемента в счетчике (когда пользователь не выбирает новый элемент из списка), счетчик накладывает текст так, чтобы счетчик был разумным размером для щелчка. Однако, когда пользователь нажимает на него и отображает список для выбора нового элемента, представленные элементы списка являются малыми по высоте. Если я использую макет элемента, который представляет элементы списка на разумной высоте, то сам прядильник становится невероятно огромным из-за его собственного заполнения элемента списка.
Любые идеи о том, как я могу управлять высотой этих режимов отображения двух элементов, чтобы они эффективно отображались с одинаковым значением высоты вместо высоты счетчика, превышающей высоту отображения списка элементов?
Ответы
Ответ 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
должно использоваться только для выпадающих элементов. В противном случае стрелка прядильщика будет растянута, и она также отобразит круг выпадающего списка на дисплей.