Вы, вероятно, нашли ответ с тех пор, как спросили, но для тех, кто ищет похожие вопросы:
Я не знаю списка имен атрибутов с хорошим объяснением того, что они делают (страница R.attr в основном дает информацию, которая уже есть в имени), но способ, которым я делаю это:
Начните с элемента, который я даю setDropDownViewResource (), в моем случае: android.R.layout.simple_spinner_dropdown_item
и найдите.
Найдите определение его макета в \ sdk \ platform \ android-17 (версия конкретной платформы, чтобы избежать лишних результатов).
Получить его стиль из файла макета. В этом случае: ?android:attr/spinnerDropDownItemStyle
Теперь у нас есть нужное имя атрибута.
Лучше сделать это таким образом, чем пытаться угадать, какой атрибут использовать, потому что вы знаете, какой атрибут использует сама система, так что, скорее всего, он будет правильным (если только нет ошибки).
Если бы я создал собственный макет для адаптера, мне пришлось бы создать
9-патч изображения и т. Д.
Да, нет, макет определяет, какой тип элемента графического интерфейса у вас будет (текстовое поле, спиннер, кнопка изображения, пользовательский элемент ...), а не то, как они оформлены (фон из девяти патчей, цвета текста). ..), так что вам все равно придется возиться со стилями, чтобы получить правильный внешний вид.
Например, для визуальной согласованности я перенес стиль кнопки, флажка и спиннера из Theme.Holo в Gingerbread, но не разбирался с макетом, все, что я делал, - это вышеупомянутые шаги и просмотр результата (spinnerDropDownItemStyle
в приведенный выше пример) в themes.xml, который дал мне имя стиля (например: Widget.Holo.DropDownItem.Spinner
).
Затем я посмотрел , что , в файле styles.xml и импортировал его (и любого родителя *) в файл styles.xml моего проекта, выполнив поиск и копирование любой ссылки, связанной с Holo, в моем проекте и соответственно изменив пространство имен добавьте android:
к атрибутам и замените ?android:attr
на @style
для того, что я копирую в мой файл styles.xml).
Пока мне вообще не приходилось возиться с макетами (даже наличие переключателей в диалоговых окнах счетчика в Gingerbread определяется атрибутом xml: android:checkMark
).
- Если у стиля нет родительского атрибута (например,
Widget.Holo.DropDownItem.Spinner
), тогда его родительский стиль совпадает со стилем за исключением последнего элемента (например, Widget.Holo.DropDownItem
)