In Android, every single View
subclass has a setVisibility()
method that allows you modify the visibility of a View
object
There are 3 options of setting the visibility:
View
visible inside the layoutView
, but leaves a gap that is equivalent to what the View
would occupy if it were visibleView
, and removes it entirely from the layout. It's as if its height
and width
were 0dp
Is there something equivalent to the above for Widgets in Flutter?
For a quick reference: https://developer.android.com/reference/android/view/View.html#attr_android:visibility
Invisible: The widget takes physical space on the screen but not visible to user.
Gone: The widget doesn't take any physical space and is completely gone.
Invisible example
Visibility(
child: Text("Invisible"),
maintainSize: true,
maintainAnimation: true,
maintainState: true,
visible: false,
),
Gone example
Visibility(
child: Text("Gone"),
visible: false,
),
Alternatively, you can use if
condition for both invisible and gone.
Column(
children: <Widget>[
if (show) Text("This can be visible/not depending on condition"),
Text("This is always visible"),
],
)