v1.0.3+1expandable_widgets
Ein Paket bietet für Flutter erweiterbare Widgets, die zu 100 % in Dart geschrieben sind.
Erweiterbarer Widget für Flutter
Englischer Projektschnappschuss. Aktuelle Inhalte auf GitHub.
Expandable Widgets offers a variety of uses. Check More Usecases
You can obtain the basic expandable widgets by writing one single line of code.
You can use Expandable with two required parameters.
Expandable(
firstChild: const Text('Hello world!'),
secondChild: Center(child: const Text('Hello world!')),
),
If you add subChild argument you will get an expandable with subtitle. See 1.0.2 or older versions for previous extended expandables.
Expandable(
firstChild: Padding(
padding: const EdgeInsets.all(8.0),
child: Text(data, maxLines: 3, textAlign: TextAlign.justify),
),
secondChild: Padding(
padding: const EdgeInsets.all(8.0),
child: Text(data, maxLines: 3, textAlign: TextAlign.justify),
),
subChild: Text("Show Details"),
),
You can use ExpandableText by giving the required parameter, textWidget. ExpandableText will handle the rest.
ExpandableText(textWidget: Text(data, maxLines: 3),
Let's say you want to use Expandable and Flutter's AnimatedIcon at the same time.
Just add the relevant animationController. Expandable will handle the rest!
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Expandable(
firstChild: Padding(
padding: const EdgeInsets.only(right: 8.0),
child: Text('Settings', style: TextStyle(fontSize: 18)),
),
secondChild: Column(children: [Text('Option 1'), Text('Option 2'), Text('Option 3')]),
animationController: _animationController,
arrowLocation: ArrowLocation.left,
arrowWidget: Padding(
padding: const EdgeInsets.all(8.0),
child: AnimatedIcon(icon: AnimatedIcons.menu_close, progress: _animation, size: 16),
),
),
Even more, one can combine AnimatedIcon and Expandable's rotation animation.
Give the same animation to AnimatedIcon and Expandable and finally, do not forget to add relevant animationController to Expandable.
Expandable(
firstChild: Padding(
padding: const EdgeInsets.only(right: 8.0),
child: Text('Settings', style: TextStyle(fontSize: 18)),
),
secondChild: Column(children: [Text('Option 1'), Text('Option 2'), Text('Option 3')]),
animation: _animation,
animationController: _animationController,
arrowLocation: ArrowLocation.left,
arrowWidget: Padding(
padding: const EdgeInsets.all(8.0),
child: AnimatedIcon(icon: AnimatedIcons.menu_close, progress: _animation, size: 16),
),
),
],
),
Expandable(
firstChild: Text('Nested Expandable Widgets'),
secondChild: Expandable(
borderRadius: BorderRadius.zero,
boxShadow: [],
firstChild: Text('Second Expandable'),
secondChild: Expandable(
borderRadius: BorderRadius.zero,
boxShadow: [],
firstChild: Text('Third Expandable'),
secondChild: Center(child: Text('The End')),
),
),
),
You can change the location of the arrow
ExpandableText(
textWidget: Text(data).copyWith(maxLines: 3),
arrowLocation: ArrowLocation.bottom,
finalArrowLocation: ArrowLocation.bottom,
),
You can use helper text
ExpandableText(textWidget: Text(data, maxLines: 3), helper: Helper.text),
Customized ExpandableText with helper text
ExpandableText(
textWidget: Text(data, maxLines: 5, textAlign: TextAlign.justify),
backgroundColor: Colors.white,
helper: Helper.text,
helperTextList: const ['...More', '...Less'],
helperTextStyle: const TextStyle(color: Colors.orange, fontWeight: FontWeight.bold),
boxShadow: const [BoxShadow(color: Colors.orange, offset: Offset(2, 2), blurRadius: 4)],
borderRadius: BorderRadius.circular(20.0),
padding: const EdgeInsets.all(12.0),
onPressed: () => print('hi!'),
),
Or you can remove the helper
ExpandableText(textWidget: Text(data, maxLines: 3), helper: Helper.none),
For more info please see example.
Abhängigkeiten 3 Einträge
{"sdk":"flutter"}{"sdk":"flutter"}^1.0.0Nach Anwendungsfall filtern, Aktivität vergleichen und vor der Nutzung das Originalprojekt prüfen.
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗