Kis*_*rma 8 dart flutter flutter-layout
我需要一些可以在单行小部件中左、中、右对齐我的小部件的东西。现在我已经使用了mainAxisAlignment:MainAxisAlignment.spaceBetween,我的行小部件了。但是在这里,当我的左侧小部件有一些大内容时,可以spaceBetween将我的中心小部件对齐到右侧,这会破坏我的应用程序设计。
是否有任何选项可以将Align小部件用于行中的多个小部件?
return Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Container(
margin: EdgeInsets.only(left: 15.0),
height: 27.0,
child: Container(
child: Center(
child: Text(
'TestDataTest',
),
),
),
),
Container(
height: 27.0,
child: Container(
child: Center(
child: Text(
'Test',
),
),
),
),
Container(
margin: EdgeInsets.only(right: 15.0),
height: 27.0,
child: Container(
child: Padding(
child: Center(
child: Text(
'T',
),
),
),
),
),
],
);
Run Code Online (Sandbox Code Playgroud)
这里图片将简要描述该问题。上面的行包含上述代码,下一行是预期的输出。是否有任何解决方案可以将小部件正确地左、中、右对齐,无论其内容如何?
小智 15
你可以使用这样的小部件结构
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
body: Container(
alignment: Alignment.center,
margin: EdgeInsets.all(24),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Row1(),
Row2(),
],
),
),
),
);
}
}
class Row1 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
padding: const EdgeInsets.all(8),
color: Colors.orange,
height: 48,
child: Row(
children: <Widget>[
Expanded(
child: Align(
alignment: Alignment.centerLeft,
child: Container(
color: Colors.white,
child: Text('TestDataTest'),
),
),
),
Expanded(
child: Align(
alignment: Alignment.center,
child: Container(
color: Colors.white,
child: Text('Test'),
),
),
),
Expanded(
child: Align(
alignment: Alignment.centerRight,
child: Container(
color: Colors.white,
child: Text('T'),
),
),
),
],
),
);
}
}
class Row2 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
padding: const EdgeInsets.all(8),
color: Colors.orange,
height: 48,
child: Row(
children: <Widget>[
Expanded(
child: Align(
alignment: Alignment.centerLeft,
child: Container(
color: Colors.white,
child: Text('LIVE'),
),
),
),
Expanded(
child: Align(
alignment: Alignment.center,
child: Container(
color: Colors.white,
child: Text('LIVE'),
),
),
),
Expanded(
child: Align(
alignment: Alignment.centerRight,
child: Container(
color: Colors.white,
child: Text('\$ 80'),
),
),
),
],
),
);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15734 次 |
| 最近记录: |