2017-07-18 4 views
0

Ich verwende PopUp Menu in meiner Anwendung. Einer der Artikel in meinem Popup-Menü hat drei Untermenüs, wiePopup-Menü Untermenü Titel Farbe

  1. SetAs
    • Klingelton
    • Benachrichtigung
    • Alarm
  2. Element2
  3. Item3

.

Nachdem ich auf "SetAs" geklickt hatte, sah ich nur die drei Unterelemente und sonst nichts. Ich benutzte eine alte Version der Support-Bibliothek, etwas wie v22 oder v23, ich bin mir nicht sicher. Aber als ich die Android-Support-Bibliothek auf v7:25.4.0 in meinem Projekt aktualisiert habe, sah ich einen Titel (SetAs) in der Untermenüansicht.

Dies ist ein Screenshot von meinem Popup-Menü:

screenshot

Jetzt ist meine Frage, wie kann ich die Farbe dieses Titels ändern?

Antwort

1

Ich habe dies programmatisch getan mit folgendem Code:

diese setzen, bevor Sie popup.show() nennen.

// Change PopupMenu subMenu title color 
PopupMenu popup = new PopupMenu(activity, view); 
Menu itemSetAs = popup.getMenu(); 
SubMenu s = itemSetAs.findItem(R.id.SetAs).getSubMenu(); 
SpannableString headerTitle = new SpannableString(itemSetAs.findItem(R.id.SetAs).getTitle()); 

// Change the color: 
headerTitle.setSpan(new ForegroundColorSpan(Color.YOUR_COLOR), 0, headerTitle.length(), 0); 

// You can even change the size: 
int textSize = getResources().getDimensionPixelSize(R.dimen.your_size); 
headerTitle.setSpan(new AbsoluteSizeSpan(textSize), 0, headerTitle.length(), SPAN_INCLUSIVE_INCLUSIVE); 

s.setHeaderTitle(headerTitle); 

popup.show().