Flutter:如何指定文本的位置?

时间:2019-11-16 10:11:39

标签: flutter dart

因此,我想在正在执行的应用程序的图像下方添加文本。但是,文本似乎出现在图像旁边,而不是下面的位置:

enter image description here

我希望它像下面的屏幕截图一样显示在图片下方:

enter image description here

这是我的main.dart代码:

import 'package:flutter/material.dart';
import 'login_page.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      home: new LoginPage(),
      theme: new ThemeData(
        primarySwatch: Colors.green
      )
    );
  }
}

这是我的login_page.dart代码:

import 'package:flutter/material.dart';

class LoginPage extends StatefulWidget{
  @override  
  State createState() => new LoginPageState();
}

class LoginPageState extends State<LoginPage>{
  @override 
  Widget build(BuildContext context){
    return new Scaffold(
      appBar: AppBar(
        title: new Text("SMARTID", textAlign: TextAlign.center, style: TextStyle(fontFamily: 'Open Sans', fontWeight: FontWeight.bold)),
        leading: Padding(
          padding: const EdgeInsets.all(8.0),
          child: Image.asset(
            "assets/arrowPNG.png",
            scale: 8.0,
          )
        )
      ),
      backgroundColor: Colors.transparent,
      body: new Container(
        child: Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Image.asset('assets/arrowPNG.png', scale: 2.5),
          ]
        ),
        alignment: Alignment(0, -0.5),
        width: MediaQuery.of(context).size.width,
        height: MediaQuery.of(context).size.height,
        decoration: BoxDecoration(
          image: DecorationImage(
            image: AssetImage('assets/background.png'),
            fit: BoxFit.cover,
          )
        )
      )
    );
  }
}

我该如何解决?

1 个答案:

答案 0 :(得分:1)

这是您的解决方案, 您应该放置Text("SMARTID")Image.asset以下 在Column中而不在Row

class LoginState extends State<Login> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
            title: Text("SMARTID", textAlign: TextAlign.center,
                style: TextStyle(
                    fontFamily: 'Open Sans', fontWeight: FontWeight.bold)),
            leading: Padding(
                padding: const EdgeInsets.all(8.0),
                child: Image.asset(
                  "assets/images/appicon.png",
                  scale: 8.0,
                )
            )
        ),
        backgroundColor: Colors.transparent,
        body: Container(
            child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  Image.asset('assets/images/appicon.png', scale: 2.5),
                  SizedBox(height: 20,),
                  Text("SMARTID", style: TextStyle(
                      fontSize: 30, color: Colors.white,fontFamily: 'Open Sans',
                      fontWeight: FontWeight.bold))
                ]
            ),
            alignment: Alignment(0, -0.5),
            width: MediaQuery
                .of(context)
                .size
                .width,
            height: MediaQuery
                .of(context)
                .size
                .height,
            decoration: BoxDecoration(
                image: DecorationImage(
                  image: AssetImage('assets/images/background.jpg'),
                  fit: BoxFit.cover,
                )
            )
        )
    );
  }
}

输出

enter image description here