首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Padding: EdgeInserts |不移动部件?

Padding: EdgeInserts |不移动部件?
EN

Stack Overflow用户
提问于 2021-02-16 08:13:36
回答 3查看 46关注 0票数 0

我正在尝试将文本定位为更靠近左边缘,而不是靠近中心。

在使用flutter的研究中,似乎正确的方法是使用const EdgeInserts

然而,当使用常量边缘插入时,我页面上的文本只会以极小的量改变位置,这几乎不会引起注意。我是不是对下面的代码做错了什么?

代码语言:javascript
复制
Column(
            children: <Widget>[
              Padding(
                padding: const EdgeInsets.only(left: 10, bottom: 50),
                child: Text(
                  'Some Text',
                  style: TextStyle(
                    fontSize: 24,
                    fontFamily: 'Avenir',
                    fontWeight: FontWeight.w900,

这是一个正在发生的事情的样本,与我想要的相比

为答案编辑:

代码语言:javascript
复制
class Onboarding1 extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      body: Column(
        children: [
          Image.asset(
            "assets/Onboarding1_Photo.png",
            height: MediaQuery.of(context).size.height * 0.7,
            width: MediaQuery.of(context).size.width,
            fit: BoxFit.cover,
          ),
          Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              Padding(
                padding: const EdgeInsets.only(left: 10, bottom: 50),
                child: Text(
                  'Some Text',
                  style: TextStyle(
                    fontSize: 24,
                    fontFamily: 'Avenir',
                    fontWeight: FontWeight.w900,
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-02-16 08:23:01

要拉伸视图,可以添加到Column

代码语言:javascript
复制
crossAxisAlignment: CrossAxisAlignment.stretch,

具有不同填充和对齐方式的两个文本的完整示例:

代码语言:javascript
复制
class _MyAppState extends State<MyApp> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Column(
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: <Widget>[
            Container(
              color: Colors.blue,
              height: 300,
            ),
            Padding(
              padding: const EdgeInsets.only(
                left: 10,
                top: 30,
              ),
              child: Text(
                'Some Text',
                textAlign: TextAlign.left,
                style: TextStyle(
                  fontSize: 24,
                  fontFamily: 'Avenir',
                  fontWeight: FontWeight.w900,
                ),
              ),
            ),
            Padding(
              padding: const EdgeInsets.only(
                right: 50,
                top: 30,
              ),
              child: Text(
                'Some Text',
                textAlign: TextAlign.right,
                style: TextStyle(
                  fontSize: 24,
                  fontFamily: 'Avenir',
                  fontWeight: FontWeight.w900,
                ),
              ),
            ),
          ],
        ),
      ),
    );
  }
}

结果:

票数 2
EN

Stack Overflow用户

发布于 2021-02-16 08:31:30

具有两个嵌套的Columns的解决方案,在两者上都使用CrossAxisAlignment.start,在内部Column上使用一个Padding

代码语言:javascript
复制
import 'package:flutter/material.dart';

void main() {
  runApp(
    MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Flutter Demo',
      home: HomePage(),
    ),
  );
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          Image.network(
              'https://upload.wikimedia.org/wikipedia/commons/thumb/d/de/Colosseo_2020.jpg/2560px-Colosseo_2020.jpg'),
          Padding(
            padding: const EdgeInsets.all(8.0),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Text(
                  'Some Text',
                  style: TextStyle(
                    fontSize: 24,
                    fontFamily: 'Avenir',
                    fontWeight: FontWeight.w900,
                  ),
                ),
                const SizedBox(height: 16.0),
                Text('This is some text. This is some text.'),
                const SizedBox(height: 16.0),
                OutlineButton(
                  onPressed: () {},
                  child: Text('Continue'),
                ),
              ],
            ),
          ),
        ],
      ),
    );
  }
}
票数 1
EN

Stack Overflow用户

发布于 2021-02-16 08:17:21

您可以从左侧开始添加crossAxisAlignment on Column小部件。

代码语言:javascript
复制
Column(
  crossAxisAlignment: CrossAxisAlignment.start,
  children: [
    Padding(padding: const EdgeInsets.only(left: 10, bottom: 50),
      child: Text(""),
    )
  ],
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66217138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档