Android Spinner - Как сделать раскрывающийся список прозрачным? - PullRequest
11 голосов
/ 17 декабря 2009

У меня есть пользовательский XML-файл выпадающего списка в / 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" />

Я устанавливаю выпадающий список с помощью 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"

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

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

Ответы [ 5 ]

29 голосов
/ 13 августа 2011

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

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

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

26 голосов
/ 28 мая 2012

Попробуйте установить на счетчике это:

android:popupBackground="@android:color/transparent"
1 голос
/ 17 декабря 2009

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

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

0 голосов
/ 01 июня 2010

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

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

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

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

Любые идеи.

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

0 голосов
/ 19 декабря 2009

Попробуйте

android:cacheColorHint="#00000000" 

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

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

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

...