zoukankan      html  css  js  c++  java
  • 关于Flutter页面布局

    不定期更新,把重要涉及到的属性都写上了,其余需要自己填写,有错误或者改进欢迎指正

    1、AppBar

    效果

            appBar: PreferredSize(
              child: AppBar(
                titleSpacing: -15, //title和leading的距离,越小越近
                leading: Builder(//左上角的控件,一般放一个icon
                  builder: (BuildContext context) {
                    return IconButton(
                      icon: ,
                      onPressed: () {},//button点击事件
                    );
                  },
                ),
                elevation: 0, //去掉appbar底部shadow
              ),
              preferredSize: Size.fromHeight(38), //appbar高度
            ),

    2、子元素溢出父元素,常用来将子元素按父元素bottom border切分开,这个写法到后面会有些问题,用别的方式替换了

    效果

    Container(
          height: 100,
          child: OverflowBox(
            maxHeight: 400,//要大于父元素高度才能溢出
            child: Container(
              height: 200,
            ),
          ),
        );

     3、Container嵌套Container,父元素需要设置alignment子元素才正常显示高度

    Container(
              alignment: Alignment.topCenter,//设置alignment后子元素高度才正常显示
              height: 200,
              ),
              child: Container(
                height: 140,
              ),
            ),

    4、borderColor透明度不起作用,borderRadius只能设置在border统一的样式上,不能和只设置bottom的border样式放一起,比如设置了圆角又设置bottom border

                      decoration: BoxDecoration(
                        color: Color(0xffffffff),
                        // borderRadius只能设置在border统一的样式上,不能和只设置bottom的border样式放一起
                        borderRadius: BorderRadius.only(
                            topLeft: Radius.circular(10.0),
                            topRight: Radius.circular(10.0)),
                        border: Border(
                          bottom: BorderSide(
                            //这里单独设置了透明度但是不起作用,又加了withOpacity
                            color: Color(0xcc000000).withOpacity(0.2),
                             1.0,
                            style: BorderStyle.solid
                          )
                        )
                      ),

     5、CachedNetworkImage的placeholder放CircularProgressIndicator时,progress放到center里才变小,但是设置宽高度不起作用

                       CachedNetworkImage(
                          fit: BoxFit.cover,
                          imageUrl: url,
                          placeholder: (context, url) =>
                          //改变process宽高度必须这样的widget结构
                          Center(
                              child: SizedBox(
                                 20.0,
                                height: 20.0,
                                child: CircularProgressIndicator(
                                  //修改progress颜色
                                  valueColor: AlwaysStoppedAnimation(Color(0xff333333)),
                                ),
                              )),
                          errorWidget: (context, url, error) => Image.asset(
                            'default_photo.png',
                             40.0,
                            height: 40.0,
                          ),
                        ),

     6、全屏滚动ListView包裹GridView的时候报Vertical viewport was given unbounded height.

    如果单给GridView套Expand的话会报Expand的错,直接加shrinkWrap: true,属性就可以了

    7、InkWell必须放在Material Widget里,这块拆分showDialog的时候出现的,可以用GestureDetector代替

    8、android appbar和content中间有一条线,ios没有,找了好久。。PreferredSize指定appbar高度导致的,也可能是flutter_screenutil导致的1个像素的问题。改个数字就行了

  • 相关阅读:
    Delphi XE5 android 蓝牙通讯传输
    Delphi XE5 android toast
    Delphi XE5 android openurl(转)
    Delphi XE5 如何设计并使用FireMonkeyStyle(转)
    Delphi XE5 android 捕获几个事件
    Delphi XE5 android listview
    Delphi XE5 android 黑屏的临时解决办法
    Delphi XE5 android popumenu
    Delphi XE5 android 获取网络状态
    Delphi XE5 android 获取电池电量
  • 原文地址:https://www.cnblogs.com/nightfallsad/p/11354130.html
Copyright © 2011-2022 走看看