Changement spinner style dans la barre d'outils
Je suis en train de mettre un compteur dans mon Toolbar
comme l'ancien ActionBar style de navigation et mon thème est cette
<style name="AppBaseTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/color_primary</item>
<item name="colorPrimaryDark">@color/color_primary_dark</item>
<item name="colorAccent">@color/color_primary</item>
</style>
mais mon nez est noir, alors que toutes les autres icônes de dépassement et de menus sont blanc donc il est mauvais
J'ai essayé de changer le style de la casserole à l'aide de cette
<style name="ToolbarSpinnerTheme" parent="Theme.AppCompat">
<item name="android:spinnerItemStyle">@style/TextAppearanceSpinnerItem</item>
</style>
<style name="TextAppearanceSpinnerItem">
<item name="android:textColor">#FFFFFF</item>
</style>
c'est ainsi que ma Barre d'outils est de style
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light">
<Spinner
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/modes"
android:minWidth="150dp"
android:gravity="bottom"
style="@style/ToolbarSpinnerTheme"/>
</android.support.v7.widget.Toolbar>
final Spinner mode = (Spinner)findViewById(R.id.modes);
SpinnerAdapter mSpinner = ArrayAdapter.createFromResource(this, R.array.action_bar_spinner, android.R.layout.simple_spinner_dropdown_item);
mode.setAdapter(mSpinner);
mais il reste toujours noir. Comment puis-je changer la touche de navigation flèche et le texte en blanc tout en gardant le même thème pour la liste déroulante style que vous obtiendriez avec le Light
thème?
Mise à jour 4.4 flèche correctif:
La seule façon, je suis la flèche pour allumer le blanc est pour ajouter la touche de navigation par programme et non en xml de sorte qu'il ressemble à quelque chose comme ceci
final ArrayAdapter spinnerAdapter = ArrayAdapter.createFromResource(getSupportActionBar().getThemedContext(),
R.array.main_navigation_list, R.layout.spinner_text);
spinnerAdapter.setDropDownViewResource(R.layout.spinner_dropdown_item);
mNavigationTags = getResources().getStringArray(R.array.main_navigation_list);
mNavigationSpinner = new Spinner(getSupportActionBar().getThemedContext());
mNavigationSpinner.setAdapter(spinnerAdapter);
mNavigationSpinner.setOnItemSelectedListener(this);
mToolbar.addView(mNavigationSpinner)
- Pouvez-vous poster le code pour la création de la carte et spinner?
- Je ne vois pas comment cela va aider, mais là
- Pouvez vous aussi poster le spinner xml?
- réédité
- voir cette question semblable stackoverflow.com/questions/26852108/...
- J'ai posté ma solution ici: stackoverflow.com/a/31053663/4255576 j'Espère que ça aide! 🙂
Vous devez vous connecter pour publier un commentaire.
Lorsque vous créez le arrayadapter que vous devriez faire getcontexteapplication au lieu de cela:
Faire une nouvelle mise en page du fichier:
Puis modifiez votre code pour cela:
Avez-vous essayé de mettre la casserole dans le fichier xml comme ceci:
Et également désactiver le titre comme ceci:
Réponse est de Chris Banes: https://stackoverflow.com/a/26511653/2767703
Je le fais comme suit:
navigation_toolbar.xml
MainActivity.java
Vous trouverez j'ai utilisé personnalisé spinner élément de mise en page,
layout_drop_title
etlayout_drop_list
layout_drop_title.xml
layout_drop_list.xml
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
avecapp:popupTheme="@style/ThemeOverlay.AppCompat.Light"
ont été un élément clé pour la flècheKevin est dans la bonne direction, mais la vraie réponse est de ne pas utiliser le contexte de l'application, mais déjà sur le thème de contexte de la barre d'action lui-même. C'est en fait mentionné dans la documenation mais il n'a pas beaucoup d'importance, tout le long:
ThemeContext
mais qui na pas changer la couleur de la flèche encore