Column 中的 Flutter 定位小部件

Art*_*kun 4 dart flutter flutter-layout

在此处输入图片说明

我试图通过将图像和文本包装在列小部件中并将其放置在中心小部件中,在列的中心设置图像,并在图像底部设置文本。

不幸的是,它使列居中并使图像位​​于屏幕中心上方。

我该如何解决?

我目前的代码:

  @override
  Widget build(BuildContext context) {
    return Container(
      decoration: BoxDecoration(color: Theme.of(context).primaryColor),
      child: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Image.asset(ImagePaths.newLogoLogin),
            Text(Strings.beALocal)
          ],
        ),
      ),
    );
  }
Run Code Online (Sandbox Code Playgroud)

gq3*_*gq3 5

这可以使用Expanded小部件来实现:

@override
Widget build(BuildContext context) {
  return Container(
    decoration: BoxDecoration(color: Theme.of(context).primaryColor),
    child: Column(
      children: [
        Spacer(),
        Image.asset(ImagePaths.newLogoLogin),
        Expanded(
          Column(
             children: [ Text(Strings.beALocal) ],
             mainAxisAlignment: MainAxisAlignment.start
          )
        )
      ],
    ),
  );
}
Run Code Online (Sandbox Code Playgroud)


Jor*_*ies 2

您可以使用Stack带有Positioned Text小部件的 a 。

完整示例:

void main() => runApp(App());

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text("Test")),
        body: Stack(children: [Placeholder(), Test()]),
      ),
    );
  }
}

class Test extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: Stack(
        alignment: AlignmentDirectional.bottomCenter,
        overflow: Overflow.visible,
        children: <Widget>[
          Container(
            width: 150,
            height: 150,
            color: Colors.blue,
          ),
          Positioned(child: Text("Some text"), bottom: -25),
        ],
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

截屏