Saya mencoba menyelaraskan dua item pada posisi ekstrem, satu di kiri dan satu lagi di kanan. Saya memiliki satu baris yang sejajar ke kiri dan kemudian anak dari baris itu diratakan ke kanan. Namun tampaknya baris anak mengambil properti alignment dari induknya. Ini kode saya
var SettingsRow = new Row(
mainAxisAlignment: MainAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Text("Right",softWrap: true,),
],
);
var nameRow = new Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
Text("Left"),
SettingsRow,
],
);
alhasil saya mendapatkan sesuatu seperti ini
Left Right
Yang saya inginkan adalah
Left Right
Juga ada cukup ruang di Row. Pertanyaan saya adalah mengapa Rowan tidak memamerkan MainAxisAlignment.end
propertinya?
flutter
flutter-layout
MistyD
sumber
sumber
settingsRow
, yang berisiText("right")
mainAxisAlignment
anak tidak terjadi. Apakah properti orang tua melebihi properti anak-anak?Solusi sederhana adalah menggunakan di
Spacer()
antara kedua widgetRow( children: [ Text("left"), Spacer(), Text("right") ] );
sumber
Anda bisa melakukannya dengan banyak cara.
Menggunakan
mainAxisAlignment: MainAxisAlignment.spaceBetween
Menggunakan
Spacer
Menggunakan
Expanded
Menggunakan
Flexible
Keluaran :
sumber
Stack
dalam kasus itu.Stack
, dengan anak pertamaAlign
(kanan) dan anak kedua bisa aCenter
atau sederhanaAlign
.Ya
CopsOnRoad
benar, melalui tumpukan Anda dapat menyelaraskan satu di kanan dan lainnya di tengah.Stack( children: [ Align( alignment: Alignment.centerRight, child: Text("right"), ), Align( alignment: Alignment.center, child: Text("center"), ) ], )
sumber