【发布时间】:2020-10-06 23:25:42
【问题描述】:
我使用 ThemeData() 的方式如下:
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutterrequirements/ModelClasses/note.dart';
class CreateNewNote extends StatefulWidget {
@override
_CreateNewNoteState createState() => _CreateNewNoteState();
}
class _CreateNewNoteState extends State<CreateNewNote> {
bool isStoringInDatabase = false;
//var obj = Note.nothing();
var _formKey = GlobalKey<FormState>();
saveLocally() async {
//storing data in sqflite
}
String titleNote;
String descriptionNote;
//var appTheme=//
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
scaffoldBackgroundColor: Colors.white,
appBarTheme: AppBarTheme(
color: Color.fromRGBO(90, 50, 142, 1),
textTheme: TextTheme(
//rgb(136,252,254)
title: TextStyle(
color: Color.fromRGBO(136, 252, 254, 1),
fontSize: 20,
fontStyle: FontStyle.italic),
),
),
primaryTextTheme: TextTheme(
title: TextStyle(),
button: TextStyle(),
).apply(
bodyColor: Color.fromRGBO(136, 252, 254, 1),
displayColor: Color.fromRGBO(136, 252, 254, 1),
)),
home: Scaffold(
appBar: AppBar(
title: Text(
"MemoNotes",
),
),
body: Form(
key: _formKey,
child: Container(
margin: EdgeInsets.fromLTRB(5, 20, 30, 60),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Flexible(
child: FractionallySizedBox(
heightFactor: 0.3,
),
),
Text("Title:"),
TextFormField(
decoration: InputDecoration(
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(30),
borderSide: BorderSide(
color: Colors.purpleAccent)),
prefixIcon: Icon(Icons.text_fields),
hintText: "Enter the title",
prefixText:
" " //to show gap between icon and title
),
validator: (_) => null,
onSaved: (val) => titleNote = val,
),
Flexible(
child: FractionallySizedBox(
heightFactor: 0.3,
),
),
Text("Description:"),
TextFormField(
decoration: InputDecoration(
border: OutlineInputBorder(
borderRadius: BorderRadius.circular(30),
borderSide: BorderSide(
color: Colors.purpleAccent)),
prefixIcon: Icon(Icons.description),
hintText: "Enter the description",
prefixText: " "),
validator: (_) => null,
onSaved: (val) => descriptionNote = val,
),
Builder(
builder: (context) {
return RaisedButton(
child: Text("SAVE THIS NOTE"),
color: Colors.greenAccent,
onPressed: () {
saveLocally();
setState(() {
isStoringInDatabase = true;
});
});
},
),
],
)),
)
)
);
}
}
我也试过How to change text color for Theme?,但对我没用。
我的颜色和 textTheme 确实适用于 appBar,但我使用的 primaryTextTheme 不适用于其余应用。
如何使文本“标题”和“描述”具有我在主题中指定的颜色?
【问题讨论】: