This is my Code For a Raised Button in Flutter if i replace
void main() => runApp(MaterialApp(home:MyApp()));
with
void main() => runApp(MyApp());
It throws an Error
Provide me a solution for this...... Does it have any connection with the versions of flutter and flutter plugins ?
and Can anyone Provide a difference between these two lines ?
import 'package:flutter/material.dart';
void main() => runApp(MaterialApp(home:MyApp()));
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return Container(
child: Center(
child: RaisedButton(
child: Text("Hello"),
onPressed: (){
print("Hello world");
},
)
),
);
}
}
Error:
Performing hot restart...
Syncing files to device SM G965F...
Restarted application in 1,759ms.
I/flutter (22269): ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
I/flutter (22269): The following assertion was thrown building InkWell(gestures: [tap], clipped to BoxShape.rectangle,
I/flutter (22269): dirty, state: _InkResponseState<InkResponse>#db17e):
I/flutter (22269): No Directionality widget found.
I/flutter (22269): InkWell widgets require a Directionality widget ancestor.
I/flutter (22269): The specific widget that could not find a Directionality ancestor was:
I/flutter (22269): InkWell
I/flutter (22269): The ownership chain for the affected widget is: "InkWell ← DefaultTextStyle ←
I/flutter (22269): AnimatedDefaultTextStyle ← _InkFeatures-[GlobalKey#cee82 ink renderer] ←
I/flutter (22269): NotificationListener<LayoutChangedNotification> ← CustomPaint ← _ShapeBorderPaint ← PhysicalShape
I/flutter (22269): ← _MaterialInterior ← Material ← ⋯"
I/flutter (22269): Typically, the Directionality widget is introduced by the MaterialApp or WidgetsApp widget at the
I/flutter (22269): top of your application widget tree. It determines the ambient reading direction and is used, for
I/flutter (22269): example, to determine how to lay out text, how to interpret "start" and "end" values, and to resolve
I/flutter (22269): EdgeInsetsDirectional, AlignmentDirectional, and other *Directional objects.
I/flutter (22269):
I/flutter (22269): The relevant error-causing widget was:
I/flutter (22269): RaisedButton file:///F:/Flutter_Projects/flutter_test_app/lib/main.dart:16:18
I/flutter (22269):
I/flutter (22269): When the exception was thrown, this was the stack:
I/flutter (22269): #0 debugCheckHasDirectionality.<anonymous closure> (package:flutter/src/widgets/debug.dart:247:7)
I/flutter (22269): #1 debugCheckHasDirectionality (package:flutter/src/widgets/debug.dart:263:4)
I/flutter (22269): #2 InkResponse.debugCheckContext (package:flutter/src/material/ink_well.dart:521:12)
I/flutter (22269): #3 _InkResponseState.build (package:flutter/src/material/ink_well.dart:843:19)
I/flutter (22269): #4 StatefulElement.build (package:flutter/src/widgets/framework.dart:4619:28)
I/flutter (22269): #5 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4502:15)
I/flutter (22269): #6 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4675:11)
I/flutter (22269): #7 Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)
I/flutter (22269): #8 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4481:5)
I/flutter (22269): #9 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4666:11)
I/flutter (22269): #10 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4476:5)
I/flutter (22269): ... Normal element mounting (92 frames)
I/flutter (22269): #102 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3446:14)
I/flutter (22269): #103 Element.updateChild (package:flutter/src/widgets/framework.dart:3214:18)
I/flutter (22269): #104 RenderObjectToWidgetElement._rebuild (package:flutter/src/widgets/binding.dart:1148:16)
I/flutter (22269): #105 RenderObjectToWidgetElement.mount (package:flutter/src/widgets/binding.dart:1119:5)
I/flutter (22269): #106 RenderObjectToWidgetAdapter.attachToRenderTree.<anonymous closure> (package:flutter/src/widgets/binding.dart:1061:17)
I/flutter (22269): #107 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2607:19)
I/flutter (22269): #108 RenderObjectToWidgetAdapter.attachToRenderTree (package:flutter/src/widgets/binding.dart:1060:13)
I/flutter (22269): #109 WidgetsBinding.attachRootWidget (package:flutter/src/widgets/binding.dart:941:7)
I/flutter (22269): #110 WidgetsBinding.scheduleAttachRootWidget.<anonymous closure> (package:flutter/src/widgets/binding.dart:922:7)
I/flutter (22269): (elided 11 frames from class _RawReceivePortImpl, class _Timer, dart:async, and dart:async-patch)
I/flutter (22269):
I/flutter (22269): ════════════════════════════════════════════════════════════════════════════════════════════════════
MaterialApp is built upon WidgetApp. Those classes are used to provide some fondamentals Flutter Widget as Navigation handling (just to make an example).
The error said:
I/flutter (22269): No Directionality widget found.
InkWell that is used in RaisedButton widget need it and this is one of the widget offered from WidgetApp. This is why lot of things will not work if you don't wrap your application inside it.
You could find more information about WidgetApp here
MaterialApp is used to provide a material design look and feel.