美文网首页
Flutter 账号设置页(1)

Flutter 账号设置页(1)

作者: JoneYng | 来源:发表于2020-08-05 14:02 被阅读0次
账号设置页

看实现效果每一条Item可以进行小组件的封装

Visibility组件

是控制子组件隐藏/可见的组件

功能
child 子组件
replacement 不可见时显示的组件(当maintainState = false)
visible 子组件是否可见,默认true(可见)
maintainState 不可见时是否维持状态,默认为false
maintainAnimation 不可见时,是否维持子组件中的动画
maintainSize 不可见时是否留有空间(设置为true,会报错。如果想隐藏并保留组件空间请使用Opacity)
maintainSemantics 不可见时是否维持它的语义(我也没搞明白是什么)
maintainInteractivity 不可见时是否具有交互性

代码示例

Visibility(
                              visible: isRightImage,
                              child: CircleAvatar(
                                backgroundImage: getBackgroundImage(rightImageUri),
                              ))
/// 信息设置页Item
class PersonDetailItem extends StatelessWidget {
  final Function onTap; //点击事件
  final String leftText; //左侧显示文字
  final String rightText; //右侧显示文字
  final Widget leftIcon; //左侧图片
  final bool isRight; //是否显示右侧
  final bool isRightImage; //是否显示右侧图片
  final String rightImageUri; //右侧图片地址
  final bool isRightText; //是否显示右侧文字

  const PersonDetailItem({
    Key key,
    this.leftText = "",
    this.leftIcon,
    this.rightText = "",
    this.isRight = true,
    this.isRightImage = false,
    this.rightImageUri = "",
    this.isRightText = true,
    this.onTap,
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    bool isDark = ThemeUtils.isDark(context);

    return  Container(
      width: double.infinity,
      height: 50,
      child:  Material(
        color: isDark ? Colours.dark_bg_color : Colours.material_bg,
          child: InkWell(
        onTap: onTap,
        child: Container(
          margin: EdgeInsets.only(left: 20, right: 20),
          child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: <Widget>[
              Row(
                  children: <Widget>[
                    leftIcon,
                    Container(
                      margin: EdgeInsets.only(left: 15),
                      child: Text(
                        leftText,
                        style: TextStyle(fontSize: 15.0, color: Colors.grey),
                      ),
                    )
                  ]),
              //Visibility是控制子组件隐藏/可见的组件
              Visibility(
                visible: isRight,
                child: Row(
                    children: <Widget>[
                      Container(
                        margin: EdgeInsets.only(right: 10),
                        child: Row(children: <Widget>[
                          Visibility(
                              visible: isRightText,
                              child: Text(
                                rightText,
                                style: TextStyle(
                                    fontSize: 15.0, color: Colors.grey),
                              )),
                          Visibility(
                              visible: isRightImage,
                              child: CircleAvatar(
                                backgroundImage: getBackgroundImage(rightImageUri),
                              ))
                        ]),
                      ),
                      Images.arrowRight
                    ]),
              )
            ],
          ),
        ),
      )),
    );
  }

  ImageProvider getBackgroundImage(String rightImageUri){
    if(rightImageUri.contains("http")){
      return NetworkImage(rightImageUri);
    }else{
      return AssetImage(rightImageUri);
    }
  }
}

相关文章

  • Flutter 账号设置页(1)

    看实现效果每一条Item可以进行小组件的封装 Visibility组件 是控制子组件隐藏/可见的组件 库功能chi...

  • 2019-11-11

    flutter的启动页设置 1.把要用的启动页图片放置在此位置 2.修改launch_background.xml...

  • flutter 启动页设置(Android端)

    flutter 启动页设置(Android端) 针对安卓端,flutter每次启动都有一个白色或者黑色的页面,用户...

  • Mac下配置Flutter开发环境

    1.进入官网下载页: Flutter SDK releases | Flutter[https://flutter...

  • 前端实战之用户控制台

    这是一个模仿简书风格的用户设置页面 实现页面 基本设置页 个人资料页面 黑名单页面 密码重置页 删除账号页 依赖第...

  • flutter设置启动页和欢迎页

    启动页是程序每次启动都会显示的页面.这里处理的办法就是进入程序后跳转这个页面,折腾页面作为启动页,然后再根据判断有...

  • macOS配置flutter环境

    1 下载flutter SDK 2 设置flutter环境变量 3 初始化flutter 注意:flutter的大...

  • Flutter学习之---安装

    1 安装Flutter 2 运行 flutter doctor安装依赖 3 iOS设置3.1 模拟器设置Xco...

  • 2019-01-14

    flutter学习笔记: 1.如何设置listView的高度? 答:在flutter中,不需要设置listView...

  • flutter备忘录

    flutter 安装 1、设置环境变量 2、下载flutter 放到 ~/flutter3、在~/.bash_pr...

网友评论

      本文标题:Flutter 账号设置页(1)

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