v1.0.3+1expandable_widgets
パッケージは、100%のDartで書かれたFlutter用の拡張可能なウィジェットを提供します。
Flutter用の拡張可能なウィジェット
以下は英語原文のスナップショットです。最新版は 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.
依存関係一覧 3 件
{"sdk":"flutter"}{"sdk":"flutter"}^1.0.0用途で絞り込み、開発状況を比較し、採用前に元のリポジトリで要件を確認しましょう。
“A repository is the most basic element of GitHub.”
GitHub Docs — About repositories ↗