Как я могу изменить цвет фона флага флаттера? Кажется, что нет свойства цвета или фона.
Изменить цвет фонаря флаттера
Ответ 1
Когда вы создаете свой ListView
в свойстве child
вашего Drawer
, вы можете обернуть ваши различные разделы Drawer
внутри a Container
и использовать свойство color
для Container
.
drawer: new Drawer(
child: new ListView(
children: <Widget>[
new Container(child: new DrawerHeader(child: new CircleAvatar()),color: Colors.tealAccent,),
new Container (
color: Colors.blueAccent,
child: new Column(
children: new List.generate(4, (int index){
return new ListTile(
leading: new Icon(Icons.info),
);
}),
),
)
],
),
),
Лучшая альтернатива, если у вас уже есть согласованный дизайн раскраски, заключается в том, чтобы определить ваш ThemeData
под свойством theme корня вашего приложения, DrawerHeader
, и тело будет следовать за вашим canvasColor
, поэтому вам нужно переопределить значение одного из них, чтобы изменить цвет:
return new MaterialApp(
....
theme: new ThemeData(
canvasColor: Colors.redAccent,
....),
)
Ответ 2
Лучший способ обернуть Drawer
с Theme
,
Например:
@override
Widget build(BuildContext context) {
return Scaffold(
//other scaffold items
drawer: Theme(
data: Theme.of(context).copyWith(
canvasColor: Colors.blue, //This will change the drawer background to blue.
//other styles
),
child: Drawer(
child: Column(
children: <Widget>[
//drawer stuffs
],
),
),
);
}
Ответ 3
Возможно, самый простой способ - просто обернуть ListView
внутри Container
и указать его цвет следующим образом:
drawer: Drawer(
child: Container(color: Colors.red,
child: new ListView(
...
)
)
)
Ответ 4
ОБЫЧНЫЙ ФОН
Просто установите желаемый цвет темы, используя свойство primarySwatch: Colors.brown в ThemeData.
class MyApp extends StatelessWidget {
final appTitle = 'Drawer Demo';
@override
Widget build(BuildContext context) {
return MaterialApp(
title: appTitle,
theme: new ThemeData(
primarySwatch: Colors.brown, // Your app THEME-COLOR
),
home: MyHomePage(title: appTitle),
);
}
}
ГРАДИЕНТ ФОН Добавьте градиент свойство AppBar.
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("profyl.org",
style: TextStyle(color: Colors.white),
textDirection: TextDirection.ltr),
flexibleSpace: Container(
decoration: new BoxDecoration(
gradient: new LinearGradient(
colors: [
const Color(0xFF3366FF),
const Color(0xFF00CCFF),
],
begin: const FractionalOffset(0.0, 0.0),
end: const FractionalOffset(1.0, 0.0),
stops: [0.0, 1.0],
tileMode: TileMode.clamp),
),
),
),
body: HomeListPage(),
drawer: DrawerPage());
}
Ответ 5
Для изменения цвета заголовка ящика используйте код удара
UserAccountsDrawerHeader(
accountName: Text("Ashish Rawat"),
accountEmail: Text("[email protected]"),
decoration: BoxDecoration(
color: const Color(0xFF00897b),
),
currentAccountPicture: CircleAvatar(
backgroundColor: Theme.of(ctxt).platform == TargetPlatform.iOS
? const Color(0xFF00897b)
: Colors.white,
child: Text(
"A",
style: TextStyle(fontSize: 40.0),
),
),
),