我有一个streamBuilder,但想在其中居中放置文本小部件,我尝试使用中心小部件,但它没有任何作用,因为文本小部件不占用整个垂直空间。
它看起来像这样:
StreamBuilder<List<Dtc>>(
key: ValueKey(1),
stream: bloc.dtcs,
builder: (context, snapshot) {
if (snapshot?.hasData ?? false) {
// dtcs list is empty
if (snapshot.data.isEmpty) {
return Text(
"My text to be centered"
);
} else {
return Row(
children: <Widget>[
Expanded(
child: Container(
height: MediaQuery.of(context).size.height - 230.0,
child: ListView.builder(
padding: const EdgeInsets.all(0),
itemBuilder: (BuildContext context, int index) {
if (index >= snapshot.data.length) return null;
return AWidget();
},
),
),
),
],
);
}
} else if (snapshot?.hasError ?? true) {
return errorIcon;
} else {
return loadingIcon;
}
},
);
是否有一个小部件,我能够使文本小部件vertacly Text("My text to be centered");
答案 0 :(得分:0)
您可以尝试使用Row:
Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Text("center text")
],
),
答案 1 :(得分:-1)
(我认为)最简单的居中小部件方式是使用func authorize() {
if #available(iOS 13.0, *) {
guard let currentWindowScene = UIApplication.firstWindowScene else { return }
presenter.present(in: currentWindowScene)
} else {
presenter.present()
}
}
小部件。
Center
您可以在此处找到有关 Container(child:
Center(child: Text("My text to be centered"),)
),
小部件的更多详细信息:https://api.flutter.dev/flutter/widgets/Center-class.html
答案 2 :(得分:-1)
因此,我要做的是删除放在Expanded
上的ListView.builder
并用它包裹整个StreamBuilder
。而且有效。
类似这样的东西:
Row(
children: <Widget>[
Expanded(
child: StreamBuilder<List<Dtc>>(
...