import 'package:chat/data/constants.dart'; import 'package:chat/generated/i18n.dart'; import 'package:chat/models/group_info_model.dart'; import 'package:chat/utils/CustomUI.dart'; import 'package:chat/utils/FullWithButton.dart'; import 'package:chat/utils/msgHandler.dart'; import 'package:flutter/material.dart'; import 'create_group_view.dart'; class GroupManagePage extends StatefulWidget { final GroupInfoModel groupInfoModel; GroupManagePage({Key key, @required this.groupInfoModel}) : super(key: key); @override _GroupManagePageState createState() => new _GroupManagePageState(); } class _GroupManagePageState extends State { bool invite = false; //消息提示 @override void initState() { super.initState(); invite = widget.groupInfoModel.askSwitch == 1; } Widget _buildSettingWithSwitch( bool switchValue, String title, Function onchang) { Widget left = new Text( title, textScaleFactor: 1.0, style: TextStyle(fontSize: 14, fontWeight: FontWeight.normal), ); Widget right = new Expanded( child: new Align( alignment: Alignment.centerRight, child: new Switch( value: switchValue, activeTrackColor: Constants.ConfrimButtonColor.withOpacity(0.3), onChanged: onchang, ))); return new Container( decoration: BoxDecoration( color: Colors.white, ), padding: EdgeInsets.only(left: 20), height: 53, child: new Row( children: [left, right], ), ); } @override Widget build(BuildContext context) { Widget appBar = new AppBar( backgroundColor: AppColors.NewAppbarBgColor, title: new Text( I18n.of(context).group_setting, style: TextStyle(color: AppColors.NewAppbarTextColor), textScaleFactor: 1.0, ), leading: CustomUI.buildCustomLeading(context), centerTitle: true, ); return Scaffold( appBar: appBar, body: SafeArea( child: _buildBody(), )); } Widget _buildBody() { return Container( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ SizedBox( height: 7, ), ///群聊邀请确认 _buildSettingWithSwitch(invite, I18n.of(context).group_invite, (bool val) { setState(() { invite = val; MsgHandler.setGroupSwitch( widget.groupInfoModel.sessionId, invite); }); }), _buildTips(), Container( color: Colors.white, padding: EdgeInsets.only(left: 10), height: 53, child: FullWidthButton( title: I18n.of(context).change_group_owner, showDivider: false, showRightIcon: true, onPressed: () async { String str = await Navigator.of(context).push( new MaterialPageRoute( builder: (context) { return CreateGroupPage( GroupOperatingPageType.SelectGroupOwner, widget.groupInfoModel.members, widget.groupInfoModel.sessionId); }, ), ); if (str == 'close') { Navigator.pop(context); } }, )) ], ), ); } Widget _buildTips() { return Container( margin: EdgeInsets.only(top: 10, bottom: 10, left: 15, right: 15), child: Text( I18n.of(context).group_setting_tips, textScaleFactor: 1.0, style: TextStyle(fontSize: 10.5, color: Constants.GreyTextColor), ), ); } @override void dispose() { super.dispose(); } }