Create an account

Very important

  • To access the important data of the forums, you must be active in each forum and especially in the leaks and database leaks section, send data and after sending the data and activity, data and important content will be opened and visible for you.
  • You will only see chat messages from people who are at or below your level.
  • More than 500,000 database leaks and millions of account leaks are waiting for you, so access and view with more activity.
  • Many important data are inactive and inaccessible for you, so open them with activity. (This will be done automatically)


Thread Rating:
  • 244 Vote(s) - 3.63 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Expanded widgets must be placed inside Flex widgets

#1
New to flutter, can some one tells me whats wrong with below code[![enter image description here][1]][1]

class GamePage extends StatelessWidget {
int _row;
int _column;

GamePage(this._row,this._column);

@override
Widget build(BuildContext context) {
return new Material(
color: Colors.deepPurpleAccent,
child:new Expanded(
child:new GridView.count(crossAxisCount: _column,children: new List.generate(_row*_column, (index) {
return new Center(
child: new CellWidget()
);
}),) )


);
}
}

Attaching error screenshot.


[1]:
Reply

#2
You do not have a `Flex` ancestor.

> An Expanded widget must be a descendant of a Row, Column, or Flex, and the path from the Expanded widget to its enclosing Row, Column, or Flex must contain only StatelessWidgets or StatefulWidgets (not other kinds of widgets, like RenderObjectWidgets).

I am not sure about the need for `Expanded` in your case. But removing it or wrapping it in a `Column` should fix the problem.
Reply

#3
# Crash

This crashes because Expanded is not a descendant of a Flex widget:


Container(
child: Expanded(
child: MyWidget(),
),
)

# Acceptable

Here Expanded *is* a descendant of Flex:

Flex(
direction: Axis.horizontal,
children: [
Expanded(
child: MyWidget(),
),
],
)

Row is also a Flex widget:

Row(
children: [
Expanded(
child: MyWidget(),
),
],
)

And so is Column:

Column(
children: [
Expanded(
child: MyWidget(),
),
],
)

Another option is to just get rid of the Expanded widget:

Container(
child: MyWidget(),
)
Reply

#4
Another simple example related to the error but with Expanded and ConstrainedBox :

The code:

Column(
children: [
ConstrainedBox(
child: Expanded(
child: ...
)
)
]

The error message:
> [...] Usually, this means that the Expanded widget has the wrong ancestor RenderObjectWidget. Typically, Expanded widgets are placed directly inside Flex widgets.
The offending Expanded is currently placed inside a ConstrainedBox widget.

Why the code is the code not working properly ?
In this example, Expanded must have the Column as direct Parent (which is a compatible parent type).

The solution:

Column(
children: [
Expanded(
child: ConstrainedBox(
child: ...
)
)
]






Reply

#5
You need to try using `Flex` Widget on that
Reply

#6
sometimes it can also happen if you have an expended widget inside the SingleChildScrollView widget, then it shows the blank screen. If you have any expended widget inside SingleChildScrollView remove it and it will solve the problem.

**Before**

body: SingleChildScrollView(
child: Column(
children: [
Container(),
Expanded(
child: Container(),
),
],
),
),

**After**

body: SingleChildScrollView(
child: Column(
children: [
Container(),
Container(),
],
),
),

Reply

#7
In my case issue was solved



Flex(
direction: Axis.vertical,
children: [
Expanded(
child: Text("Issue was solved"),
)
])
Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

©0Day  2016 - 2023 | All Rights Reserved.  Made with    for the community. Connected through