Autore Topic: Settare stile spinner in ActionBar+Tabs+ViewPager+Fragment+Appcompat?  (Letto 379 volte)

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Mi trovo in una situazione abbastanza strana e a causa della mia ignoranza in materia non so più che pesci prendere.

Ho una activity con actionbar, il navigation mode coi tab (lo so, è deprecato  :-( ) , un viewpager, 5 fragment e utilizzo appcompat. Ho cercato di impostare i colori secondo le linee guida del material design.

A livello generale la app fa quello che deve fare, ma ieri ho aggiunto il quinto fragment e ho notato un problema.

In pratica ora ho 5 tabs e in portrait scrollano senza problemi, in landscape i tabs vengono messi dentro la action bar.
Poichè ho superato una certa lunghezza X mi ritrovo con uno spinner che funge da tabs. Poichè la lunghezza X è arbitraria e dipende dal device, non posso semplicemente togliere un fragment o ridurre il testo.  :-)

Lo sfondo dell'action bar è blu e le scritte sono bianche. Ho impostato tutto in uno stile con primary color primary text color e così via.

Quando clicco sullo spinner per mostrare il titolo dei vari fragment mi ritrovo con lo spinner (insomma il selettore della modalità navigation list) che ha lo sfondo di default (grigio) e mantiene il colore del testo bianco. Non si legge niente.

E' una combinazione particolare, mi rendo conto, ma non ho idea di come fare a settare il colore del testo solo quando si apre la lista o impostare solo il colore dello sfondo di quella lista in modo che sia blu come la actionbar.

Ho provato a cercare in giro, avrò fatto 50 prove ma l'unica cosa che sono riuscito a cambiare è il modo in cui viene presentato lo sfondo del bottone che apre la lista. Cosa che non mi serve a niente, purtroppo.

In pratica o setto il colore di sfondo blu o alla pressione del tasto la navigation list deve prendere l'altro colore del testo. Una soluzione vale l'altra per me.

Non se quello si chiama popup, actionbardropdown.. insomma ho difficoltà a trovare anche una documentazione che mi dica esattamente quali sono tutti i parametri configurabili di una action bar con tabs o lista.

 :-(

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Settare stile spinner in ActionBar+Tabs+ViewPager+Fragment+Appcompat?
« Risposta #1 il: 29 Gennaio 2015, 22:03:38 CET »
0
A futura memoria.

Non si può cambiare lo sfondo del popup senza usare le 9 patch.

Se come nel mio caso si usa appcompat prima nel nostro stile va aggiunto questo:

Codice (XML): [Seleziona]
        <item name="actionDropDownStyle">@style/Pippo</item>Senza il suffisso "android:".

Dopodiché si definisce lo stile Pippo così:

Codice (XML): [Seleziona]
<style name="Pippo" parent="@style/Widget.AppCompat.Light.Spinner.DropDown.ActionBar">
         <item name="android:popupBackground">@drawable/sfondopopup</item>
        </style>

sfondopopup è una immagine 9 patch che potete generare anche coi tool online.

 :-)