美文网首页工作生活
第五节 FlutterROW 水平布局

第五节 FlutterROW 水平布局

作者: HT_Jonson | 来源:发表于2019-07-01 11:43 被阅读0次
image.png

Flutter中的row控件就是水平控件,它可以让Row里边的子元素进行水平排列。

Row控件可以分为灵活排列和非灵活排列两种,这两种模式都需要熟练掌握,等经验丰富后可根据需求进行使用。

非灵活例子:

import 'package:flutter/material.dart';

class MemberPage extends StatelessWidget {
  const MemberPage({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'row',
      home: Scaffold(
        appBar: AppBar(
          title: Text('ROW'),
        ),
        body: Row(
          children: <Widget>[
              child: RaisedButton(
                onPressed: () => {},
                color: Colors.orangeAccent,
                child: Text('data2'),
              ),
              child: RaisedButton(
                onPressed: () => {},
                color: Colors.orangeAccent,
                child: Text('data3'),
              ),
             
          ],
        ),
      ),
    );
  }
}

解决上面有空隙的问题,可以使用 Expanded来进行解决,也就是我们说的灵活布局。我们在按钮的外边加入Expanded就可以了,代码如下:

import 'package:flutter/material.dart';

class MemberPage extends StatelessWidget {
  const MemberPage({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'row',
      home: Scaffold(
        appBar: AppBar(
          title: Text('ROW'),
        ),
        body: Row(
          children: <Widget>[
            Expanded(
              child: RaisedButton(
                onPressed: () => {},
                color: Colors.orangeAccent,
                child: Text('data'),
              ),
            ),
             Expanded(
              child: RaisedButton(
                onPressed: () => {},
                color: Colors.orangeAccent,
                child: Text('data2'),
              ),
            ),
             Expanded(
              child: RaisedButton(
                onPressed: () => {},
                color: Colors.orangeAccent,
                child: Text('data3'),
              ),
            ),
             
          ],
        ),
      ),
    );
  }
}
image.png

column组件下加入下面的代码:

  • CrossAxisAlignment.star:居左对齐。
  • CrossAxisAlignment.end:居右对齐。
  • CrossAxisAlignment.center:居中对齐。

主轴和副轴的辨识
在设置对齐方式的时候你会发现右mainAxisAlignment属性,意思就是主轴对齐方式,那什么是主轴,什么又是幅轴那。

main轴:如果你用column组件,那垂直就是主轴,如果你用Row组件,那水平就是主轴。

cross轴:cross轴我们称为幅轴,是和主轴垂直的方向。比如Row组件,那垂直就是幅轴,Column组件的副轴就是水平方向的。

主轴和幅轴我们搞清楚,才能在实际工作中随心所欲的进行布局。

比如现在我们要把上面的代码,改成垂直方向居中。因为用的是Column组件,所以就是主轴方向,这时候你要用的就是主轴对齐了。

import 'package:flutter/material.dart';

class MemberPage extends StatelessWidget {
  const MemberPage({Key key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'row',
      home: Scaffold(
          appBar: AppBar(
            title: Text('ROW'),
          ),
          body: Center(
              child: Column(
            crossAxisAlignment: CrossAxisAlignment.center,
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[Text('data'), Text('data2'), Text('data3')],
          ))),
    );
  }
}

相关文章

  • 第五节 FlutterROW 水平布局

    Flutter中的row控件就是水平控件,它可以让Row里边的子元素进行水平排列。 Row控件可以分为灵活排列和非...

  • 页面布局的几种方式

    居中布局 一、水平居中布局 水平居中:absolute + transform: translateX(-50%)...

  • 页面架构

    布局解决方案 水平居中布局 垂直居中布局 水平垂直都居中的布局 多列布局 多列等分布局 多列等高布局 在多列布局的...

  • CSS布局与水平垂直居中

    左右布局 左中右布局 水平居中 垂直居中 水平垂直居中 左右布局 float实现左右布局 子元素设置float: ...

  • [2020-08-10]css3中的常用几种布局

    div的水平垂直居中 flex布局,使用display: flex实现水平垂直居中 grid布局 使用grid布局...

  • 居中布局

    水平居中 垂直居中 垂直水平居中 已知元素的宽高的居中布局 定位居中布局 盒模型居中布局 图片的垂直水平居中(利用...

  • Autolayout布局九宫格

    Autolayout纯代码布局九宫格 单行固定间隔排列: 水平布局设置 垂直布局设置 固定宽度设置: 水平布局 垂...

  • flutter界面布局-以及Tabbar的封装

    在讲布局之前先说说获取屏幕宽高的方法: 布局 1. 水平布局 2. 水平布局和垂直( Column )布局的 3....

  • 微信小程序设置控件权重

    项目中最常用的两种布局方式,水平布局和垂直布局,在微信小程序中实现起来也比较简单。 1.横向水平布局: 实现水平布...

  • CSS水平居中布局、垂直居中布局、垂直水平居中布局

    本章将介绍父子元素宽高不定的CSS水平居中布局、垂直居中布局、垂直水平居中布局。学习如何写出布局不是内容关键,解决...

网友评论

    本文标题:第五节 FlutterROW 水平布局

    本文链接:https://www.haomeiwen.com/subject/tziwcctx.html