Files
FlutterUnit/lib/components/permanent/code/code_widget.dart
2021-09-26 20:50:13 +08:00

55 lines
1.4 KiB
Dart

/// create by 张风捷特烈 on 2020-04-15
/// contact me by email 1981462002@qq.com
/// 说明:
import 'package:flutter/material.dart';
import 'language/dart_languge.dart';
import 'high_light_code.dart';
import 'highlighter_style.dart';
class CodeWidget extends StatelessWidget {
CodeWidget({Key? key, required this.code,required this.style, this.fontSize = 13,this.fontFamily})
: super(key: key);
final String code;
final HighlighterStyle style;
final double fontSize;
final String? fontFamily;
@override
Widget build(BuildContext context) {
Widget body;
if (code == null) {
return Container();
} else {
Widget _codeWidget;
try {
_codeWidget = RichText(
text: TextSpan(
style: TextStyle(fontSize: fontSize,fontFamily: fontFamily),
children: <TextSpan>[
CodeHighlighter(
style: style,
language: const DartLanguage()
).format(code)],
),
);
} catch (err) {
print(err);
_codeWidget = Text(code);
}
body = SingleChildScrollView(
child: Container(
child: _codeWidget,
padding: EdgeInsets.all(10),
decoration: BoxDecoration(
color: style.backgroundColor ?? Color(0xffF6F8FA),
borderRadius: BorderRadius.all(Radius.circular(5.0))),
),
);
}
return body;
}
}