嗨,美好的一天,我在我的mysql中有一个值枚举,待处理完毕,我想在我的flutter应用程序中显示第一个字母,例如Pending,或者是否完成
Text('Status:\t' + x.status,
style: TextStyle(
fontSize: 25.0,
fontWeight: FontWeight.bold,
color: x.status == 'pending'
? Colors.red
: Colors.green)),
分析解答
看看我创建的这个例子。
import 'package:flutter/material.dart';
import 'capitalize.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: SampleApp(),
debugShowCheckedModeBanner: false,
);
}
}
class SampleApp extends StatefulWidget {
@override
_SampleAppState createState() => _SampleAppState();
}
class _SampleAppState extends State<SampleApp> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Your heading'),
),
body: Container(
child: Column(
children: <Widget>[
Text("someString".capitalize())
],
)));
}
}
这是dart文件:capitalize.dart
extension StringExtension on String {
String capitalize() {
return "${this[0].toUpperCase()}${this.substring(1)}";
}
}
为使扩展正常工作,您在pubspec.yaml中的sdk至少应为2.7.0
environment:
sdk: ">=2.7.0 <3.0.0"
即使您遇到未定义类扩展的任何问题,也请检查以下链接 颤振extension-methods不起作用,它表示"undefined class"和"requires the extension-methods language feature"