コード例 #1
0
ファイル: ProfilePage.cs プロジェクト: weacw/RunTogether
 private Widget _BuildBaseElemtns()
 {
     return(new Container(
                decoration: new BoxDecoration(color: new Color(0xffededed)),
                child:
                new ListView(
                    children: new List <Widget>
     {
         new Container(
             padding: EdgeInsets.only(left: 20, top: 80, bottom: 10),
             decoration: new BoxDecoration(color: Color.white, shape: BoxShape.rectangle,
                                           borderRadius: BorderRadius.all(5)),
             child: new ListTile(
                 leading: new AvatarWidget(HelperWidgets._createImageProvider(AvatarImageType.NetWork,
                                                                              AppManager.Instance.GetUserData.AvatarUrl)),
                 title: _buildNickName(), subtitle: _buildMotto(), trailing: _buildTrailing())
             ),
         new Container(padding: EdgeInsets.only(top: 20)),
         new Container(
             decoration: new BoxDecoration(color: Color.white),
             child: new Column(
                 mainAxisSize: MainAxisSize.min,
                 children: new List <Widget>
         {
             new TapItemWidget(title: "Leader board", iconData: IconsExtern.leaderboaard,
                               GoToLeaderBord),
             new TapItemWidget(title: "Setting", iconData: IconsExtern.setting,
                               GoToSettingPanel, isLast: true),
         }
                 )
             ),
     }
                    )
                ));
 }
コード例 #2
0
ファイル: EditProfilePage.cs プロジェクト: weacw/RunTogether
        private Widget _buildBaseViewBody()
        {
            return(new Padding(padding: EdgeInsets.only(top: 50),
                               child: new Column(
                                   children: new List <Widget>
            {
                new ListTileWithDividerWidget(titleWidget: new Text("Avatar"),
                                              trailingWidget: new AvatarWidget(
                                                  HelperWidgets._createImageProvider(AvatarImageType.NetWork,
                                                                                     Datas.AppManager.Instance.GetUserData.AvatarUrl)),
                                              onTap: GoToAvatarEdit),


                new ListTileWithDividerWidget(titleWidget: new Text("NickName"),
                                              trailingWidget: _buildNickNameTrailing(),
                                              onTap: () => GoToStringEditor(Datas.AppManager.Instance.GetUserData.NickName, "Edit Name",
                                                                            (result => Datas.AppManager.Instance.GetUserData.NickName = result))),


                new ListTileWithDividerWidget(titleWidget: new Text("Mottor"),
                                              trailingWidget: _buildMottorTrailing(),
                                              onTap: () => GoToStringEditor(Datas.AppManager.Instance.GetUserData.Mottor,
                                                                            title: "Edit Mottor",
                                                                            (result => Datas.AppManager.Instance.GetUserData.Mottor = result)), dividerHeight: 0),
            }
                                   )
                               ));
        }
コード例 #3
0
 public override Widget build(BuildContext context)
 {
     return(new Column(
                mainAxisSize: MainAxisSize.min,
                children: new List <Widget>
     {
         new ListTile(
             leading: new Row(
                 mainAxisSize: MainAxisSize.min,
                 children: new List <Widget>
         {
             new Text(RankingId),
             new Padding(padding: EdgeInsets.only(left: 30)),
             new AvatarWidget(HelperWidgets._createImageProvider(AvatarImageType.NetWork, AvatarUrl),
                              40,
                              40),
             new Padding(padding: EdgeInsets.only(left: 20)),
             new Text(NickName),
         }
                 ),
             title:  new Text(RunDistance + " KM"),
             trailing: new Icon(icon: Icons.dock)),
         new Divider(indent: 18, height: 5),
     }
                ));
 }
コード例 #4
0
        public override Widget build(BuildContext context)
        {
            return(new Column(
                       children: new List <Widget>
            {
                new Padding(
                    padding: EdgeInsets.only(left: 20, right: 20),
                    child: new Column(
                        children: new List <Widget>
                {
                    new ListTile(leading: new AvatarWidget(HelperWidgets._createImageProvider(AvatarImageType.NetWork, AvatarURL),
                                                           40, 40), title: new Text(Name)),
                    new Container(
                        alignment: Alignment.centerLeft,
                        margin: EdgeInsets.only(left: 70),
                        padding: EdgeInsets.only(bottom: 10, top: 10),
                        child: new Text(textAlign: TextAlign.left, data: PostedContent)
                        ),
                    Unity.UIWidgets.widgets.Image.network(src: PostedImageUrl, fit: BoxFit.cover, width: 200, height: 200),
                    new Row(
                        mainAxisAlignment: MainAxisAlignment.start,
                        children: new List <Widget>
                    {
                        new Container(
                            margin: EdgeInsets.only(left: 70),
                            padding: EdgeInsets.only(bottom: 10, top: 10),
                            alignment: Alignment.centerLeft,
                            child: new Text(textAlign: TextAlign.left, data: System.DateTime.Now.ToString("u"), style: new TextStyle(fontSize: 10))

                            ),
                        new Container(
                            width: 15,
                            color: Colors.transparent,
                            margin: EdgeInsets.only(left: 90, bottom: 2.5f),
                            alignment: Alignment.centerRight,
                            child: new IconButton(icon: new Icon(icon: Icons.thumb_up, size: 15f))
                            ),
                        new Container(
                            margin: EdgeInsets.only(left: 15, bottom: 2.5f),
                            alignment: Alignment.centerRight,
                            child: new Text(LikeCount)
                            )
                    }
                        )
                }
                        )
                    ),
                new Divider()
            }
                       ));
        }
コード例 #5
0
 public override Widget build(BuildContext context)
 {
     return(new Container(
                child: new Column(
                    children: new List <Widget>
     {
         new ListTile(
             leading: new AvatarWidget(
                 HelperWidgets._createImageProvider(imageType: AvatarImageType.NetWork, AvatarURL), 40,
                 40),
             title: new Text(Name), onTap: () => { }, contentPadding: EdgeInsets.only(left: 20)),
         new Divider(height: DividerHeight, indent: DividerIndent)
     }
                    )
                ));
 }
コード例 #6
0
 public override Widget build(BuildContext context)
 {
     return(new Container(
                height: 120,
                child: new Center(
                    child: new Column(
                        children: new List <Widget>
     {
         new AvatarWidget(
             HelperWidgets._createImageProvider(AvatarImageType.NetWork, AvatarUrl), 80, 80),
         new Text(NickName),
         new Text(Mottor),
     }
                        )
                    )
                ));
 }
コード例 #7
0
ファイル: LoginPage.cs プロジェクト: weacw/RunTogether
 public override Widget build(BuildContext context)
 {
     return(new Scaffold(
                appBar: HelperWidgets._buildCloseAppBar(isCenterTitle: true, title: new Text(""),
                                                        lealding: new StoreConnector <AppState, object>(
                                                            converter: (state) => null,
                                                            builder: ((buildContext, model, dispatcher) => new IconButton(
                                                                          icon: new Icon(icon: Icons.close),
                                                                          onPressed: () =>
     {
         dispatcher.dispatch(new LoginState()
         {
             userOpCode = UserOpCodeEnum.Close,
             Context = context
         });
     })),
                                                            pure: true
                                                            )),
                body: _buildBody()
                ));
 }
コード例 #8
0
ファイル: RegisterPage.cs プロジェクト: weacw/RunTogether
 public override Widget build(BuildContext context)
 {
     return(new Scaffold(
                appBar: HelperWidgets._buildCloseAppBar(isCenterTitle: true, title: new Text(""),
                                                        lealding: new StoreConnector <AppState, AppState>(
                                                            converter: state => state,
                                                            builder: ((builderContext, model, dispatcher) => new IconButton(
                                                                          icon: new Icon(icon: Icons.close),
                                                                          onPressed: () =>
     {
         dispatcher.dispatch(new RegisterState()
         {
             userOpCode = UserOpCodeEnum.Close,
             RequestOpCode = model.RequestOpCode,
             Context = context
         });
     })),
                                                            pure: true
                                                            )),
                backgroundColor: CustomTheme.CustomTheme.EDColor,
                body: _buildBody(context)
                ));
 }
コード例 #9
0
ファイル: RegisterPage.cs プロジェクト: weacw/RunTogether
        private Widget _buildBody(BuildContext context)
        {
            return(new ListView(
                       physics: new AlwaysScrollableScrollPhysics(),
                       children: new List <Widget>
            {
                new Container(
                    alignment: Alignment.center,
                    margin: EdgeInsets.only(top: 100, bottom: 10),
                    child: new Text("用手机号注册", style: new TextStyle(fontWeight: FontWeight.bold, fontSize: 20))
                    ),

                new StoreConnector <AppState, string>(
                    converter: (state) => state.RegisterAvatar,
                    builder: ((buildContext, model, dispatcher) =>
                              new GestureDetector(
                                  child: new AvatarWidget(
                                      HelperWidgets._createImageProvider(AvatarImageType.Memory, model)),
                                  onTap: () =>
                {
#if !UNITY_EDITOR && UNITY_IOS
                    NativeGallery.GetImageFromGallery((path) =>
                    {
                        if (string.IsNullOrEmpty(path))
                        {
                            return;
                        }
                        using (WindowProvider.of(context).getScope())
                        {
                            dispatcher.dispatch(new SetRegisterAvatarState()
                            {
                                RegisterAvatar =
                                    path
                            });
                        }
                    });
#endif
                }
                                  )
                              )
                    ),

                new Padding(padding: EdgeInsets.only(top: 15)),

                new StoreConnector <AppState, AppState>(
                    converter: (state) => state,
                    builder: ((buildContext, model, dispatcher) =>
                              new TextFieldExtern("请设置昵称,如一起跑",
                                                  margin: EdgeInsets.only(left: 20, right: 20, top: 20),
                                                  editingController: NameEdit,
                                                  onChanged: (text) =>
                {
                    dispatcher.dispatch(new SetNickNameState()
                    {
                        InputResult = text
                    });
                }))
                    ),
                new StoreConnector <AppState, AppState>(
                    converter: (state) => state,
                    builder: ((buildContext, model, dispatcher) =>
                              new TextFieldExtern("请填写手机号码",
                                                  margin: EdgeInsets.only(left: 20, right: 20, top: 20),
                                                  editingController: PhoneEdit, maxLength: 11, regexCondition: @"^[0-9]*$",
                                                  onChanged: (text) => { dispatcher.dispatch(new PasswordState()
                    {
                        InputResult = text
                    }); }
                                                  )
                              )
                    ),
                new StoreConnector <AppState, AppState>(
                    converter: (state) => state,
                    builder: ((buildContext, model, dispatcher) =>
                              new TextFieldExtern("请填写密码(英文字符、数字)",
                                                  margin: EdgeInsets.only(left: 20, right: 20, top: 20),
                                                  obscureText: true, editingController: PasswordEdit, maxLength: 16,
                                                  regexCondition: @"^[A-Za-z0-9]+$",
                                                  onChanged: (text) => { dispatcher.dispatch(new PasswordState()
                    {
                        InputResult = text
                    }); }
                                                  )
                              )
                    ),
                new Stack(
                    children: new List <Widget>
                {
                    new TextFieldExtern("请填写验证码", margin: EdgeInsets.only(left: 20, right: 20, top: 20),
                                        maxLength: 6, editingController: VerfyCodeEdit),

                    new StoreConnector <AppState, AppState>(
                        converter: (state) => state,
                        builder: ((context1, model, dispatcher) =>
                                  model.RequestOpCode ==
                                  RequestOpCodeEnum.RequestVerfyCode
                                        ? new Container(
                                      alignment: Alignment.centerRight,
                                      padding: EdgeInsets.only(right: 25, bottom: 5),
                                      child: new CountdownWidget(
                                          timeSpan: new TimeSpan(0, 0, model.CountdownTime),
                                          () =>
                    {
                        dispatcher.dispatch(new RegisterState()
                        {
                            Context = context,
                            RequestOpCode =
                                RequestOpCodeEnum.None,
                            userOpCode =
                                UserOpCodeEnum.None
                        });
                    },
                                          Counter: model.CountdownTime
                                          )
                                      )
                                        : new Container(
                                      alignment: Alignment.centerRight,
                                      padding: EdgeInsets.only(right: 25, bottom: 5),
                                      child: new GestureDetector(child: new Icon(icon: Icons.send, size: 20),
                                                                 onTap: () =>
                    {
                        dispatcher.dispatch(new CountdownState()
                        {
                            CountdownTime = 60
                        });
                        dispatcher.dispatch(new RegisterState()
                        {
                            Context = context,
                            RequestOpCode =
                                RequestOpCodeEnum.RequestVerfyCode,
                            userOpCode =
                                UserOpCodeEnum.None
                        });
                    }
                                                                 )
                                      )
                                  )
                        )
                }
                    ),
                new StoreConnector <AppState, AppState>(
                    converter: (state) => state,
                    builder: ((buildContext, model, dispatcher) => new Container(
                                  margin: EdgeInsets.all(20f),
                                  width: MediaQuery.of(context).size.width,
                                  child: new FlatButton(color: Colors.green,
                                                        child: new Text("注册",
                                                                        style: CustomTheme.CustomTheme.DefaultTextThemen.display2),
                                                        onPressed: () =>
                {
                    //TODO:Register
                    //防止用户漏空提交
                    if (string.IsNullOrEmpty(model.Account) ||
                        string.IsNullOrEmpty(model.Password) ||
                        string.IsNullOrEmpty(model.NickName) ||
                        string.IsNullOrEmpty(model.VerfyCode))
                    {
                        return;
                    }

                    dispatcher.dispatch(new RegisterState()
                    {
                        RequestOpCode = RequestOpCodeEnum.RequestRegister,
                        userOpCode = UserOpCodeEnum.None,
                        Context = context
                    });
                }
                                                        )
                                  )
                              )
                    ),
            }
                       ));
        }