TabNavigator – Styles dynamisch zuweisen

In einem Tab-Navigator sollen die Styles, vor allem die Farben erst später gesetzt werden. Zunächst muss man die Stile für den TabNavigator fest definieren:

TabNavigator {
  backgroundColor: #8b8b8b;
  borderStyle: none;
  color: #ffffff;
  dropShadowEnabled: false;
  tabStyleName: "myTabs";
  firstTabStyleName: "myTabs";
  lastTabStyleName: "myTabs";
  selectedTabTextStyleName: "mySelectedTabs";
}

.myTabs {
  cornerRadius: 0;
  highlightAlphas: 0, 0;
  fillAlphas: 1, 1;
  fillColors: #ffffff, #ffffff;
  borderColor: #8b8b8b;
  color: #8b8b8b;
}

.mySelectedTabs {
  color: #ffffff;
  textRollOverColor: #ff9900;
}

Das macht man in einem Style-Abschnitt in der MXML-Datei. Dann kann man in einer Funktion auf die bestehenden Stile zugreifen und deren Attribute ändern.

// den TabNavigator CSS Style holen
var tabNavigatorStyle:CSSStyleDeclaration = StyleManager.getStyleDeclaration("TabNavigator");
// Hintergrundfarbe neu setzen (z.B. auf grün)
tabNavigatorStyle.setStyle("backgroundColor", 0x00FF00);
// den .myTabs CSS Style holen
var tabStyle:Object = StyleManager.getStyleDeclaration(".myTabs");
// z.B.cornerRadius setzen
tabStyle.setStyle("cornerRadius", 10);

Vielen Dank an Bort, den Flexperten auf dem Flex Forum.

Kommentare sind geschlossen.