Android Spinner - Как сделать раскрывающийся список прозрачным?

У меня есть собственный выпадающий XML файл spinner в /res/layout/:

spinner_view_dropdown.xml:

<?xml version="1.0" encoding="UTF-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/spinner_item_dropdown"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/transparent"
style="@style/spinner_item_dropdown" />

Я устанавливаю выпадающее меню spinner через java:

// "Spinner", aka breadcrumbs
    Spinner spin = (Spinner) findViewById(R.id.breadcrumb_dropdown);

    ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.breadcrumb, R.layout.spinner_view);

    adapter.setDropDownViewResource(R.layout.spinner_view_dropdown);

    spin.setAdapter(adapter);
    // /"Spinner"

К сожалению, белый фон все еще существует во всплывающем окне spinner, независимо от того, установлен ли прозрачный фон.

Как это исправить?

Ответ 1

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

android:dropDownSpinnerStyle или android:spinnerDropDownItemStyle, и даже атрибут android:dropDownListViewStyle темы, указывая на ваш собственный стиль, а не на стиль Android, определенный в их теме. Таким образом, я создал полностью настроенный прядильщик с прозрачной кнопкой "Выпадающее меню". Я даже избавился от разделителей списка выпадающих списков и установил свой собственный интервал для выпадающих элементов, когда я построил приложение для планшета для Fandango (взгляните на ролик сортировки на главной странице приложения).

Все в Android настраивается, вам просто нужно знать, где искать.; -)

Ответ 2

Попробуйте установить на spinner следующее:

android:popupBackground="@android:color/transparent"

Ответ 3

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

Как говорится, правильным вопросом будет: можете ли вы предоставить собственный макет для родительского представления записи (что, вероятно, является списком)? Насколько я знаю, ответа нет, к сожалению.

Ответ 4

Try

android:cacheColorHint="#00000000" 

чтобы получить прозрачность.

Я не знаю, работает ли это для вас, но есть сообщение http://android-developers.blogspot.com/2009/01/why-is-my-list-black-android.html что объясняет, почему движущиеся части списка появляются в фоновом цвете.

Возможно, это та же проблема с вашим счетчиком.

Ответ 5

Это ошибка в 1.5, я думаю, см. здесь

http://www.symsource.com/index.php?view=article&id=418&option=com_content&format=pdf

Запустите его в эмуляторе или устройстве 1.6, он все еще остается белым?

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

Любые идеи.

P.S. Случайно отправленный, когда я думал, что я вошел в систему, кто-нибудь знает, как избавиться от анонимного комментария? Может быть, администратор может это исправить?