x32x01
أدارة أكتب كود
- بواسطة x32x01 ||
تقريبا مافي اي مطور يشتغل flutter وما يظهر له error كما هو موضح في الصورة وهذا شي مقرف لما تبقى الشاشه كامل احمر ويجيب تجربه سيئه للمستخدم ولا يعرف ايش الخطأ بالضبط
على طبيعه الحال هذه عبارة عن widget مبنيه من flutter نفسها ونقدر نبني widget تكون لطيفه ويكون الخطأ موضح فيها ونستبدلها بالشاشة الحمراء المزعجه
اولا قم ببناء widget حسب رغبتك والتي سوف تظهر عند حدوث خطأ
ولتكن كالتالي
قم بمعالجه الخطاء في التطبيق با استخدام ErrorWidget
هذه widget سوف تعمل على التقاط الخطاء حينما يوجد وتقوم بعرض ال widget الذي انشئنها لغرض عرضها حين يوجد خطأ
على طبيعه الحال هذه عبارة عن widget مبنيه من flutter نفسها ونقدر نبني widget تكون لطيفه ويكون الخطأ موضح فيها ونستبدلها بالشاشة الحمراء المزعجه
اولا قم ببناء widget حسب رغبتك والتي سوف تظهر عند حدوث خطأ
ولتكن كالتالي
Code:
class CustomErrorWidget extends StatelessWidget {
final String errorMessage;
CustomErrorWidget({this.errorMessage});
@override
Widget build(BuildContext context) {
return Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(
Icons.error_outline,
color: Colors.red,
size: 50.0,
),
SizedBox(height: 10.0),
Text(
'Error Occurred!',
style: TextStyle(fontSize: 18.0, fontWeight: FontWeight.bold),
),
SizedBox(height: 10.0),
Text(
errorMessage,
textAlign: TextAlign.center,
style: TextStyle(fontSize: 16.0),
),
],
),
);
}
}
هذه widget سوف تعمل على التقاط الخطاء حينما يوجد وتقوم بعرض ال widget الذي انشئنها لغرض عرضها حين يوجد خطأ
Code:
void main() {
FlutterError.onError = (FlutterErrorDetails details) {
FlutterError.dumpErrorToConsole(details);
runApp(ErrorWidgetClass(details));
};
runApp(MyApp());
}
class ErrorWidgetClass extends StatelessWidget {
final FlutterErrorDetails errorDetails;
ErrorWidgetClass(this.errorDetails);
@override
Widget build(BuildContext context) {
return CustomErrorWidget(
errorMessage: errorDetails.exceptionAsString(),
);
}
}