Как изменить цвет фона списка счетчиков в Android
Я искал этот ответ, но не увенчался успехом.
Я создаю новый spinner динамически, как я могу изменить цвет фона списка?
текущий цвет фона имеет темно-серый цвет:
Когда я изменяю атрибут фона счетчика на белый, я получаю эту нежелательную ситуацию:
Я хочу, чтобы он был прозрачным в активности, и только когда я открываю счетчик (нажмите на него), я хочу, чтобы фон был белым.
Вот код, который я создаю spinner:
Я создаю адаптер с помощью:
mAdapter = new ArrayAdapter<String>(getApplicationContext(),
R.layout.spinner, R.id.Language, lang);
LinearLayout layoutHolder =
(LinearLayout)findViewById(R.id.RegisterFormLayout);
Spinner spinner = new Spinner(getApplicationContext());
LayoutParams layParams= new
Spinner.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
spinner.setLayoutParams(layParams);
spinner.setAdapter(mAdapter);
spinner.setOnItemSelectedListener(new myOnItemSelectedListener());
if (lang != null)
spinner.setSelection(lang.intValue());
spinnerList.add(spinner);
layoutHolder.addView(spinner);
мой макет spinner.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/SpinnerLayout">
<TextView
android:id="@+id/Language"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="#ffffff"
android:background="#00ffffff"
android:padding="5dp" />
</LinearLayout>
любое предложение?
Ответы
Ответ 1
Я решил это!
Решением для этого является добавление этого кода при динамическом создании счетчика:
spinner.setPopupBackgroundResource(R.drawable.spinner);
и создать spinner.xml в папке "Жесткая":
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#ffffff" />
</shape>
Для этого решения требуется уровень API 16 и выше.
результат:
![two muppets]()
Ответ 2
Я не уверен в этом ответе, вы можете принять или проигнорировать его.
Я думаю, что это требование невозможно с помощью изменений темы. Поскольку конструктор Spinner присваивает значение для popupBackground attr, только если вы написали в макете xml, иначе он будет использовать значение темы по умолчанию. как ниже
<Spinner
android:id="@+id/spinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:popupBackground="@android:color/holo_green_dark" />
//justtry изменение всплывающего фона
Ответ 3
Чтобы решить вашу проблему, попробуйте это.
android:popupBackground="#00826b"
Ответ 4
в моем spinner.xml
используйте это в LinearLayout: android:background="#ffffff"