Come stile text nel menu di overflow azione sul dispositivo con Android> 4.0 e button hardware?

Vorrei un colore personalizzato e il colore del text per il mio menu di overflow. Funziona bene con i dispositivi senza button di menu hardware, ma non sono in grado di creare dispositivi con il button del menu hardware. Guarda gli screenshot:

Screnshot da Galaxy NexusScreenshot da Galaxy S3

  • Come prendere lo screenshot in modo programmato?
  • Sto ottenendo "Errore: nessuna risorsa trovata che corrisponda al nome specificato (a valore con valore @ integer / google_play_services_version)"
  • Imansible eseguire 'radice adb' su un telefono Android radicato
  • Come implementare l'animation di text personalizzata di listview
  • Come gestire più timer di conto alla rovescia in ListView?
  • Sviluppo di applicazioni Android: due icone vengono create e ho solo bisogno di uno
  • Sto utilizzando questi stili:

    <style name="Theme.settleup" parent="@style/Theme.Sherlock.Light.DarkActionBar"> <item name="android:popupMenuStyle">@style/settleup_PopupMenu</item> <item name="android:actionMenuTextColor">@android:color/white</item> </style> <style name="settleup_PopupMenu" parent="@style/Widget.Sherlock.ListPopupWindow"> <item name="android:popupBackground">@drawable/menu_dropdown_panel_settleup</item> </style> 

  • Come recuperare gli indirizzi email di Google plus circoli (Amici aggiunti in Google e circoli)
  • Trasmissione aggiornamento app Android
  • OnReceive di C2DMBroadcastReceiver non è in esecuzione (per la logging)
  • Il ciclo di vita di Android e il dispositivo di block / sblock
  • convertire Mat a Bitmap Opencv per Android
  • Come verificare se una string TextView è stata tagliata (marquee)?
  • 6 Solutions collect form web for “Come stile text nel menu di overflow azione sul dispositivo con Android> 4.0 e button hardware?”

    Ho esaminato il problema. E sembra che non sia ansible modificare il textColor per il menu delle opzioni per i dispositivi Android> = 4.0 con chiave di menu HW. Non cambiare neppure i colors primari, secondari o terziari hanno influenzato il colore del text.
    L'unica "soluzione" che mi viene in mente adesso è un utilizzo piuttosto brutto di API di riflessione Java.

    Tuttavia, è ansible impostare lo background del menu delle opzioni inferiori di dispositivi chiave Android> = 4.0 HW separatamente dal menu a discesa del menu non HW.

    Hai già lo stile per il menu a discesa non-HW. Il menu a discesa non-HW è definito da android:popupMenuStyle (e popupMenuStyle ):

     <style name="Theme.settleup" parent="@style/Theme.Sherlock.Light.DarkActionBar"> <item name="android:popupMenuStyle">@style/settleup_PopupMenu</item> </style> 

    Ma lo background del menu delle opzioni fondamentali di Android> = 4.0 HW è definito con l'elemento android:panelBackground nel tema:

     <style name="Theme.settleup" parent="@style/Theme.Sherlock.Light.DarkActionBar"> <item name="android:panelBackground">@drawable/mybackground</item> </style> 

    Poiché sembra essere un problema per modificare il colore del text per i menu delle opzioni inferiori su dispositivi Android> = 4.0 HW, suggerirei di lasciare questa parte al suo stile di default.

    Sono state scavate nella modellazione AppCompat ma qualunque cosa ho provato il text color rimane bianco. Quello che faccio adesso è solo popup il menu della barra degli strumenti manualmente come questo:

     @Override public boolean onKeyUp(int keycode, KeyEvent e) { switch (keycode) { case KeyEvent.KEYCODE_MENU: if ( getSupportActionBar() != null ) { getSupportActionBar().openOptionsMenu(); return true; } } return super.onKeyUp(keycode, e); } 

    Premendo il button menu mentre il menu è aperto magicamente la chiude.

    Chi ha comunque bisogno del menù nero brutto allineato?

    È ansible applicare stili e themes in Overflow MenuItem come sotto. Il menu OverFlow è ListView così, possiamo applicare il tema come per listview.

    Applica sotto il codice in styles.xml

     <style name="AppTheme" parent="@android:style/Theme.Holo.Light"> <item name="android:dropDownListViewStyle">@style/PopupMenuListView</item> <item name="android:actionBarWidgetTheme">@style/PopupMenuTextView</item> <item name="android:popupMenuStyle">@style/PopupMenu</item> <item name="android:listPreferredItemHeightSmall">40dp</item> </style> <!-- Change Overflow Menu ListView Divider Property --> <style name="PopupMenuListView" parent="@android:style/Widget.Holo.ListView.DropDown"> <item name="android:divider">@color/app_navigation_divider</item> <item name="android:dividerHeight">1sp</item> <item name="android:listSelector">@drawable/list_selector</item> </style> <!-- Change Overflow Menu ListView Text Size and Text Size --> <style name="PopupMenuTextView" parent="@android:style/Widget.Holo.Light.TextView"> <item name="android:textColor">@color/app_white</item> <item name="android:textStyle">normal</item> <item name="android:textSize">18sp</item> <item name="android:drawablePadding">25dp</item> <item name="android:drawableRight">@drawable/navigation_arrow_selector</item> </style> <!-- Change Overflow Menu Background --> <style name="PopupMenu" parent="android:Widget.Holo.Light.ListPopupWindow"> <item name="android:popupBackground">@drawable/menu_overflow_bg</item> </style> 

    Per il tema AppCompat :

     <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="actionBarPopupTheme">@style/HardwareOptionMenu</item> </style> <style name="HardwareOptionMenu" parent="ThemeOverlay.AppCompat.Dark"> <item name="android:textColorSecondary">@color/white</item> <item name="android:colorBackground">@color/black</item> </style> 

    prova a aggiungere anche gli elementi senza prefisso android

     <style name="Theme.settleup" parent="@style/Theme.Sherlock.Light.DarkActionBar"> <item name="android:popupMenuStyle">@style/settleup_PopupMenu</item> <item name="popupMenuStyle">@style/settleup_PopupMenu</item> <item name="android:actionMenuTextColor">@android:color/white</item> <item name="actionMenuTextColor">@android:color/white</item> </style> <style name="settleup_PopupMenu" parent="@style/Widget.Sherlock.ListPopupWindow"> <item name="android:popupBackground">@drawable/menu_dropdown_panel_settleup</item> <item name="popupBackground">@drawable/menu_dropdown_panel_settleup</item> </style> 

    quello che puoi fare se devi cambiare il colore del text del menu dall'image giusta potrebbe essere il seguente "hack":

     SpannableStringBuilder text = new SpannableStringBuilder(); text.append("MenuItem1"); text.setSpan(new ForegroundColorSpan(Color.WHITE), 0, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); menu.add(Menu.NONE, MENU_ITEM_1, Menu.NONE, null).setTitle(text); 

    Sono d'accordo che non è il modo più pulito (direi che è abbastanza brutto perché bisogna prestare attenzione in each attività where si dispone di un tale menu e il titolo di each voce di menu deve essere modificato usando questa logica) ma è qualcosa che visualizza Risultato atteso. Fammi sapere se ti ha aiutato.

    Saluti!

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.