-
Notifications
You must be signed in to change notification settings - Fork 29k
Open
flutter/packages
#9750Labels
c: new featureNothing broken; request for a new capabilityNothing broken; request for a new capabilityc: new widgetMust also have "c: new feature". Request for a new widget.Must also have "c: new feature". Request for a new widget.c: proposalA detailed proposal for a change to FlutterA detailed proposal for a change to Flutterp: rfwRemote Flutter Widgets packageRemote Flutter Widgets packagepackageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.team-ecosystemOwned by Ecosystem teamOwned by Ecosystem team
Description
Use case
When building dynamic layouts through RFW, developers need the ability to create flexible layouts with fine-grained control over how space is distributed among children in a Row
or Column
. Currently, RFW only supports:
Expanded
: Always takes all available space (FlexFit.tight)- No option for FlexFit.loose behavior
Real-world scenarios where Flexible
is needed:
- Creating layouts where widgets should only take the space they need (loose fit)
- Building responsive designs that adapt to content size
- Implementing complex flex layouts that mix tight and loose fitting widgets
Current Limitation
// Currently impossible in RFW - only Expanded is available
Column(
children: [
Flexible( // ❌ Not supported
fit: "loose",
child: Text(text: "Only takes needed space")
),
Expanded( // ✅ Supported
child: Text(text: "Takes all remaining space")
),
],
)
Proposal
Add Flexible
widget support to RFW's core widgets library with the following API:
flex
: int (default: 1) - The flex factorfit
: FlexFit enum ("loose" | "tight", default: "loose") - How the child fills available spacechild
: Widget (required) - The widget below this in the tree
This matches Flutter's native Flexible
widget API exactly, ensuring consistency and predictability for developers.
flutter/packages#9750 provides a complete implementation with tests.
tirth-patel-nc
Metadata
Metadata
Assignees
Labels
c: new featureNothing broken; request for a new capabilityNothing broken; request for a new capabilityc: new widgetMust also have "c: new feature". Request for a new widget.Must also have "c: new feature". Request for a new widget.c: proposalA detailed proposal for a change to FlutterA detailed proposal for a change to Flutterp: rfwRemote Flutter Widgets packageRemote Flutter Widgets packagepackageflutter/packages repository. See also p: labels.flutter/packages repository. See also p: labels.team-ecosystemOwned by Ecosystem teamOwned by Ecosystem team