J'essaie de changer la couleur de ma barre d'application mais je n'ai pas d'option pour le faire. Comme je suis un tutoriel vidéo, ils n'ont pas montré comment modifier la couleur. Je vous en prie, aidez-moi !
import 'package:flutter/material.dart';
class SearchList extends StatefulWidget {
SearchList({ Key key }) : super(key: key);
@override
SearchListState createState() => new SearchListState();
}
class SearchListState extends State<SearchList>
{
Widget appBarTitle = new Text("Search Product..", style: new TextStyle(color: Colors.white),);
Icon actionIcon = new Icon(Icons.search, color: Colors.white);
final key = new GlobalKey<ScaffoldState>();
final TextEditingController searchQuery = new TextEditingController();
List<String> _list;
bool issearching;
String _searchText = "";
SearchListState() {
searchQuery.addListener(() {
if (searchQuery.text.isEmpty) {
setState(() {
issearching = false;
_searchText = "";
});
}
else {
setState(() {
issearching = true;
_searchText = searchQuery.text;
});
}
});
}
@override
void initState() {
super.initState();
issearching = false;
init();
}
void init() {
_list = List();
_list.add("shirts");
_list.add("shoes");
_list.add("jeans");
_list.add("informals");
_list.add("formals");
_list.add("dresses");
_list.add("accessories");
}
@override
Widget build(BuildContext context) {
return new Scaffold(
key: key,
appBar:
buildBar(context),
body: new ListView(
padding: new EdgeInsets.symmetric(vertical: 8.0),
children: issearching ? _buildSearchList() : _buildList(),
),
);
}
List<ChildItem> _buildList() {
return _list.map((contact) => new ChildItem(contact)).toList();
}
List<ChildItem> _buildSearchList() {
if (_searchText.isEmpty) {
return _list.map((contact) => new ChildItem(contact))
.toList();
}
else {
List<String> _searchList = List();
for (int i = 0; i < _list.length; i++) {
String name = _list.elementAt(i);
if (name.toLowerCase().contains(_searchText.toLowerCase())) {
_searchList.add(name);
}
}
return _searchList.map((contact) => new ChildItem(contact))
.toList();
}
}
Widget buildBar(BuildContext context) {
return new AppBar(
centerTitle: true,
title: appBarTitle,
actions: <Widget>[
new IconButton(icon: actionIcon, onPressed: () {
setState(() {
if (this.actionIcon.icon == Icons.search) {
this.actionIcon = new Icon(Icons.close, color: Colors.white,);
this.appBarTitle = new TextField(
controller: searchQuery,
style: new TextStyle(
color: Colors.white,
),
decoration: new InputDecoration(
prefixIcon: new Icon(Icons.search, color: Colors.white),
hintText: "Search...",
hintStyle: new TextStyle(color: Colors.white)
),
);
_handleSearchStart();
}
else {
_handleSearchEnd();
}
});
},),
]
);
}
void _handleSearchStart() {
setState(() {
issearching = true;
});
}
void _handleSearchEnd() {
setState(() {
this.actionIcon = new Icon(Icons.search, color: Colors.white,);
this.appBarTitle =
new Text("Search Sample", style: new TextStyle(color: Colors.white),);
issearching = false;
searchQuery.clear();
});
}
}
class ChildItem extends StatelessWidget {
final String name;
ChildItem(this.name);
@override
Widget build(BuildContext context) {
return new ListTile(title: new Text(this.name));
}
}
Je voulais une couleur d'accentuation verte sur ma barre d'application mais j'obtiens le bleu par défaut de Flutter. Je n'arrive pas à trouver le bon endroit pour placer le themeData de mon appBar. Toute aide serait la bienvenue. Merci. Ce que je veux comme résultat
Ce que je reçois