import 'package:flutter/material.dart';
void main(){
runApp(MyApp());
}
class MyApp extends StatelessWidget{
@override
Widget build(BuildContext context) {
// TODO: implement build
return MaterialApp(
title: "多窗口切换标题",
home: Scaffold(
appBar: AppBar(title: Text("布局练习"),),
body: MyPadding(),
),
);
}
}
class MyPadding extends StatelessWidget {
///padding组件有个padding必须传入他的值是 EdgeInsets
///这里比奇怪我看源码发现他是EdgeInsetsGeometry类型,但是他这个又是抽象类不能实例化
///后来仔细研读他的源代码发现有如下描述,才发现可以用 EdgeInsets 这个基类(子类实现)
///这里有3个比较重要了解他们就可以了
///EdgeInsets.all(10.0) 设置4个边距都是10
///EdgeInsets.fromLTRB(10,20,30,40) 分别4个边距的大小 一次是左,上,右 下
///EdgeInsets.only(left:40.0) 设置单个内边距
///
///
///以下是官方的源代码,我也放上来以免下次在遇到这样的抽象类就不会的尴尬
/// Base class for [EdgeInsets] that allows for text-direction aware
/// resolution.
///
/// A property or argument of this type accepts classes created either with [new
/// EdgeInsets.fromLTRB] and its variants, or [new
/// EdgeInsetsDirectional.fromSTEB] and its variants.
///
/// To convert an [EdgeInsetsGeometry] object of indeterminate type into a
/// [EdgeInsets] object, call the [resolve] method.
///
/// See also:
///
/// * [Padding], a widget that describes margins using [EdgeInsetsGeometry].
///@immutable
///abstract class EdgeInsetsGeometry {
/// ...
///}
@override
Widget build(BuildContext context) {
return Padding(
padding: EdgeInsets.all(20),
child: Text("这个是padding"),
);
}
}
效果图: