So habe ich meine Toggle
Schaltfläche in meine AppBar
, die ein Problem verursacht, da sie die gleiche Farbe haben, wenn die Toggle
ausgewählt ist.Wie ändere ich die Farbe der Material-UI's Toggle
Ich habe viele verschiedene Dinge ausprobiert (wie unten gezeigt), konnte aber die Farbe nicht ändern.
import React from 'react';
import Toggle from 'material-ui/Toggle'
import Drawer from 'material-ui/Drawer';
import AppBar from 'material-ui/AppBar';
import MenuItem from 'material-ui/MenuItem';
import getMuiTheme from 'material-ui/styles/getMuiTheme';
import MuiThemeProvider from 'material-ui/styles/MuiThemeProvider';
var Style =
{
palette:
{
primary1Color: '#ffffff',
},
};
class AppBarComp extends React.Component {
constructor() {
super();
this.state = {
open: false
};
}
getChildContext() {
return {muiTheme: getMuiTheme(Style)};
}
handleToggle =() => this.setState({open: !this.state.open});
handleClose =() => this.setState({open: false});
render() {
return <MuiThemeProvider muiTheme={getMuiTheme()}>
<div>
<AppBar
onLeftIconButtonTouchTap={this.handleToggle}
title="Time Visualizer"
iconElementRight={
<Toggle
labelStyle={{color:'white'}}
style={{marginTop:'.75em'}}
label="Toggle Compare"
/>
}/>
<Drawer
docked={false}
width={250}
open={this.state.open}
onRequestChange={(open) => this.setState({open})}
>
<MenuItem onTouchTap={this.handleClose}>Settings</MenuItem>
<MenuItem onTouchTap={this.handleClose}>About</MenuItem>
</Drawer>
</div>
</MuiThemeProvider>
}
}
AppBarComp.childContextTypes ={
muiTheme: React.PropTypes.object,
};
export default AppBarComp;
Ich bin nicht wirklich sicher, wie ich auf dieses Element zu bekommen, es ist die Farbe zu ändern. Mit Chrome konnte ich das Element untersuchen und seine Farbe ändern, konnte dies jedoch mit Code nicht wiederholen.
Ich war auch nicht in der Lage, die Toggle
programmgesteuert zu zentrieren, aber in der Lage, es in Chrom zu tun, was glauben lässt, ich bin nicht hoch genug in dem Objekt?
Wenn das Sinn macht.
Danke!
Das war genau das, wonach ich suchte! Könnten Sie mir vielleicht sagen, wie Sie zu dieser Lösung gekommen sind? Ich weiß, für das nächste Mal? –
Comments Felder scheint zu klein für das, was ich schreiben wollte, aber ich werde versuchen, die kurze Version: Geöffnet Toggle.js, um zu überprüfen, wie die Stile angewendet werden. Gefunden etw wie 'thumbWhenSwitched' habe 'backgroundColor'.Das war das einzige Feld, das etwas mit Farben zu tun hat;) Der Wert wird von' toggle.thumbOnColor' übernommen und 'toggle' wird vom Theme genommen (am Anfang der Datei wird es von' zugewiesen context.muiTheme'). Wenn dieser Wert von 'theme.toggle übernommen wird.thumbOnColor' dann versuchte ich es im Theme selbst zu ändern und es funktionierte: D (gleiche Geschichte mit 'trackWhenSwitched') Hoffe das hilft :) –
Der' thumbStyle' 'trackStyle' Trick ist super! Ich habe dies verwendet, um die Farben des Aus-Modus auf den Ein-Modus für einen Kippschalter zu setzen, den ich habe, um das Farbschema in meiner App zu ändern. So ist links das aktuelle Farbschema und wenn Sie den Schalter nach rechts ziehen, werden die Farben des neuen geladenen muiTheme aufgenommen. – shaz