中国优质的IT技术网站
专业IT技术创作平台
IT职业在线教育平台
高级用法
1. 引导线 Flutter Web 在线示例
guideline.png
class GuidelineExample extends StatelessWidget { const GuidelineExample({Key? key}) : super(key: key); @override Widget build(BuildContext context) { ConstraintId guideline = ConstraintId('guideline'); return MaterialApp( home: Scaffold( body: ConstraintLayout( children: [ Container( color: const Color(0xFF005BBB), ).applyConstraint( width: matchParent, height: matchConstraint, top: parent.top, bottom: guideline.top, ), Guideline( id: guideline, horizontal: true, guidelinePercent: 0.5, ), Container( color: const Color(0xFFFFD500), ).applyConstraint( width: matchParent, height: matchConstraint, top: guideline.bottom, bottom: parent.bottom, ), const Text( 'Align to Guideline', style: TextStyle( fontSize: 40, color: Colors.white, ), ).applyConstraint( width: wrapContent, height: wrapContent, centerHorizontalTo: parent, bottom: guideline.bottom, ) ], ), ), ); } }
2. 栅栏 Flutter Web 在线示例
barrier.gif
class BarrierExample extends StatelessWidget { const BarrierExample({Key? key}) : super(key: key); @override Widget build(BuildContext context) { ConstraintId leftChild = ConstraintId('leftChild'); ConstraintId rightChild = ConstraintId('rightChild'); ConstraintId barrier = ConstraintId('barrier'); return MaterialApp( home: Scaffold( body: ConstraintLayout( debugShowGuideline: true, children: [ Container( color: const Color(0xFF005BBB), ).applyConstraint( id: leftChild, width: 200, height: 200, top: parent.top, left: parent.left, ), Container( color: const Color(0xFFFFD500), ).applyConstraint( id: rightChild, width: 200, height: matchConstraint, right: parent.right, top: parent.top, bottom: parent.bottom, heightPercent: 0.5, verticalBias: 0, ), Barrier( id: barrier, direction: BarrierDirection.bottom, referencedIds: [leftChild, rightChild], ), const Text( 'Align to barrier', style: TextStyle( fontSize: 40, color: Colors.blue, ), ).applyConstraint( width: wrapContent, height: wrapContent, centerHorizontalTo: parent, top: barrier.bottom, goneMargin: const EdgeInsets.only(top: 20), ) ], ), ), ); } }
3. 角标 Flutter Web 在线示例
badge.png
class BadgeExample extends StatelessWidget { const BadgeExample({Key? key}) : super(key: key); @override Widget build(BuildContext context) { ConstraintId anchor = ConstraintId('anchor'); return Scaffold( body: ConstraintLayout( children: [ Container( color: Colors.yellow, ).applyConstraint( width: 200, height: 200, centerTo: parent, id: anchor, ), Container( color: Colors.green, child: const Text( 'Indeterminate badge size', style: TextStyle( color: Colors.black, fontSize: 20, ), ), ).applyConstraint( left: anchor.right, bottom: anchor.top, translate: const Offset(-0.5, 0.5), percentageTranslate: true, ), Container( color: Colors.green, ).applyConstraint( width: 100, height: 100, left: anchor.right, right: anchor.right, top: anchor.bottom, bottom: anchor.bottom, ) ], ), ); } }
文章转自公众号:FlutterFirst
微信扫码分享