2017-02-19 20 views
0

Я поставилКак создать всплывающее окно Android spinner?

<item name="android:spinnerMode">dialog</item> 

и поэтому, когда я нажимаю на блесну, я получаю всплывающее окно. Но это всплывающее окно серого цвета с белым текстом, и я не могу изменить какие-либо цвета. Как мне настроить этот диалог?

Я попробовал следующее с некоторыми сумасшедшими временными цветами, чтобы увидеть, какие изменения, но ничего не меняется.

<style name="AppTheme" parent="AppBaseTheme"> 
    <item name="android:dialogTheme">@style/SpinnerDialog</item> 
    <item name="android:alertDialogTheme">@style/SpinnerAlertDialog</item> 
</style> 

<style name="SpinnerDialog" parent="Theme.AppCompat.Light.Dialog"> 
    <item name="android:popupBackground">#ff00ff</item> 
    <item name="colorPrimary">#ff00ff</item> 
    <item name="colorPrimaryDark">#ffff00</item> 
    <item name="colorAccent">#ff0000</item> 
</style> 

<style name="SpinnerAlertDialog" parent="Theme.AppCompat.Dialog"> 
    <item name="colorPrimary">#00ffff</item> 
    <item name="colorPrimaryDark">#00ff00</item> 
    <item name="colorAccent">#0000ff</item> 
</style> 

Есть куча подобных вопросов, но все они либо имеет дело с выпадающими или древними версиями Android или просто не работают.

+0

Пробовал ли вы создать пользовательский макет и адаптер, как указано [здесь] (http://stackoverflow.com/a/17213328/3857465)? –

+1

Возможный дубликат [Как настроить Spinner в Android] (http://stackoverflow.com/questions/16694786/how-to-customize-a-spinner-in-android) –

+0

Я не хочу этого делать в коде. Они серьезны? Я просто хочу изменить фон диалога, а не создавать вилку Android или все, что они предлагают. – TimSim

ответ

3

Для достижения этой цели вы можете использовать пользовательский макет.

Spinner spinner = (Spinner) findViewById(R.id.spinner); 
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, 
     R.id.custom_spinner_item, yourItemList); 
adapter.setDropDownViewResource(R.layout.custom_spinner_dropdown_item); 
spinner.setAdapter(adapter); 

Вы должны иметь пользовательские макеты на месте:

  • R.id.custom_spinner_item для элемента в блесны.
  • R.layout.custom_spinner_dropdown_item для раскрывающегося элемента для скручивания.
+0

Я не использую выпадающие меню. Я просто хочу изменить цвет фона всплывающего окна, а не изменять какие-либо элементы. – TimSim

+0

@TimSim Это всплывающее окно называется «drop down» здесь –

5

Вместо использования темы или стиля.xml для изменения фонового цвета всплывающего окна диалога.

Почему бы не попробовать это? В вашем макете XML

<Spinner 
    android:id="@+id/spinner1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:spinnerMode="dialog" 
    android:popupBackground="#yourcolor"/> 

Поскольку вы пытались добавить тему он меняет nothing.This будет легко achieve..isn't это ??

Надеюсь, это поможет !!!

+1

Это должен быть принятый ответ. :) – WaaleedKhan