You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hyzp_ybqx/lib/widget/CheckboxButtonItem.dart

97 lines
3.4 KiB
Dart

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/screen_util.dart';
import '../services/EventBus.dart';
import '../components/dioFun.dart';
//错误提示
// This class (or a class which this class inherits from) is marked as '@immutable', but one or more of
// This class (or a class that this class inherits from) is marked as '@immutable', but one or more of
//
// 原本是自定义一个导航栏,需要传递一个参数(标题)过来。
// class NavWidget extends StatelessWidget {
// String title; //
// NavWidget(this.title);
// 结果就提示了上面的错误。看了下有道翻译
// 有道翻译:这个类(或该类继承自的一个类)被标记为“@不可变”但是它的一个或多个实例字段不是final: NavWidget.title
// 意为StatelessWidget是一个不可变的widget申明的title也应为不可变的。所以我就加了个申明的关键字final。然后警告就没了
//
// 以下是修改后的代码,不再报错
// class NavWidget extends StatelessWidget {
// final String title; //
// NavWidget(this.title);
class CheckboxButtonItem extends StatefulWidget {
final int index;
CheckboxButtonItem(this.index); //I don't know what is this index for but I will put it in anyway
@override
_CheckboxButtonItemState createState() => _CheckboxButtonItemState();
}
class _CheckboxButtonItemState extends State<CheckboxButtonItem> {
//try_setState(); //避免如下异常报错
try_setState() {
try {
setState(() {});
} catch (e) {
print('setState(() {})异常:${e}');
}
}
@override
void initState() {
//黑烟审核推送交警Checkbox改变事件
eventBus.on<HycsDataAuditSfyc>().listen((event) {
print(event.str);
try_setState(); //避免如下异常报错
});
super.initState();
}
//自定义带说明图标按钮函数。点击说明文字有反应
Widget _getCheckboxButton() {
return Container(
width: ScreenUtil().setWidth(330),
height: ScreenUtil().setWidth(110),
alignment: const Alignment(0, 1),
decoration: BoxDecoration(
border: Border.all(color: Colors.grey[600], width: 1),
borderRadius: BorderRadius.circular(3),
),
child: FlatButton(
padding: EdgeInsets.all(0),
onPressed: !fh_hyc
? null
: () {
tsjj = !tsjj;
//黑烟审核推送交警Checkbox改变广播
eventBus.fire(HycsDataAuditCheckboxButton('黑烟审核推送交警Checkbox已改变', tsjj));
print('tsjj = $tsjj');
setState(() {});
},
color: Colors.transparent,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Text('同时推送交警',
style: TextStyle(color: !fh_hyc || 1 == sfyc ? Colors.grey : null, fontSize: 12)),
SizedBox(width: 1),
!fh_hyc || 1 == sfyc
? Icon(Icons.check_box_outline_blank, color: Colors.grey)
: tsjj
? Icon(Icons.check_box, color: Colors.blue)
: Icon(Icons.check_box_outline_blank, color: Colors.black),
],
),
),
);
}
@override
Widget build(BuildContext context) {
return _getCheckboxButton();
}
}