添加登录状态管理,添加抽屉页

hmxc
张萌 4 years ago
parent 2259f86607
commit da7ad00ccc

@ -1,6 +1,8 @@
import 'package:aku_community_manager/provider/user_provider.dart';
import 'package:aku_community_manager/ui/home/home_page.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:provider/provider.dart';
void main() {
runApp(MyApp());
@ -10,9 +12,15 @@ class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return GetMaterialApp(
return MultiProvider(
providers:[
ChangeNotifierProvider(create: (context)=>UserProvider()),
],
child: GetMaterialApp(
title: '小蜜蜂管家',
home: HomePage(),
),
);
}
}

@ -0,0 +1,10 @@
import 'package:flutter/material.dart';
//
class UserProvider extends ChangeNotifier{
bool _isSigned=false;
get isSigned=>_isSigned;
setisSigned (bool state){
_isSigned=state;
notifyListeners();
}
}

@ -1,10 +1,13 @@
import 'package:aku_community_manager/provider/user_provider.dart';
import 'package:aku_community_manager/style/app_style.dart';
import 'package:aku_community_manager/tools/widget_tool.dart';
import 'package:aku_community_manager/ui/home/personal_draw.dart';
import 'package:aku_ui/aku_ui.dart';
import 'package:aku_ui/common_widgets/aku_material_button.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:provider/provider.dart';
class HomePage extends StatefulWidget {
HomePage({Key key}) : super(key: key);
@ -76,10 +79,11 @@ Widget _card(String number, String text, Color color) {
class _HomePageState extends State<HomePage> {
@override
Widget build(BuildContext context) {
final userProvider=Provider.of<UserProvider>(context);
ScreenUtil.init(context,
designSize: Size(750, 1334), allowFontScaling: true);
return Scaffold(
drawer: Drawer(),
drawer: PersonalDraw(),
backgroundColor: Color(0xFFF9F9F9),
//bar
appBar: PreferredSize(
@ -115,11 +119,13 @@ class _HomePageState extends State<HomePage> {
//
child: Builder(builder: (BuildContext context) {
return AkuRoundButton(
height: 36.w,
height: 72.w,
onPressed: () {
Scaffold.of(context).openDrawer();
},
child: CircleAvatar(radius: 36.w),
child: CircleAvatar(radius: 36.w,
backgroundColor: Colors.grey,
child: userProvider.isSigned?null:null,),
);
})),
SizedBox(width: 16.w),

@ -0,0 +1,116 @@
import 'package:aku_community_manager/provider/user_provider.dart';
import 'package:aku_community_manager/style/app_style.dart';
import 'package:aku_ui/common_widgets/aku_button.dart';
import 'package:aku_ui/common_widgets/aku_round_button.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:provider/provider.dart';
class PersonalDraw extends StatefulWidget {
PersonalDraw({Key key}) : super(key: key);
@override
_PersonalDrawState createState() => _PersonalDrawState();
}
class _PersonalDrawState extends State<PersonalDraw> {
Widget _myListTile(IconData iconData, String text) {
return AkuButton(
onPressed: () {},
child: Container(
width: double.infinity,
height: 96.w,
padding: EdgeInsets.only(left: 32.w, top: 28.w, bottom: 28.w),
child: Row(children: [
Icon(
iconData,
size: 40.w,
),
SizedBox(width: 16.w),
Text(
text,
style: TextStyle(
color: AppStyle.primaryTextColor,
fontSize: 28.sp,
),
),
]),
),
);
}
@override
Widget build(BuildContext context) {
final userProvider = Provider.of<UserProvider>(context);
return Drawer(
child: ListView(
children: [
SizedBox(
height: 80.w - 40.w + ScreenUtil().statusBarHeight,
),
//leading
Container(
margin: EdgeInsets.only(bottom: 80.w),
width: double.infinity,
height: 72.w,
child: Row(
children: [
SizedBox(width: 32.w),
//
AkuRoundButton(
height: 72.w,
onPressed: () {},
child: CircleAvatar(
radius: 36.w,
backgroundColor: Colors.grey,
child: userProvider.isSigned ? null : null,
),
),
SizedBox(width: 24.w),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
//
InkWell(
onTap: () {},
child: userProvider.isSigned
? Text(
'李大海',
style: TextStyle(
color: AppStyle.primaryTextColor,
fontSize: 28.sp,
fontWeight: FontWeight.bold),
)
: Text('登录',
style: TextStyle(
color: AppStyle.primaryTextColor,
fontSize: 28.sp,
fontWeight: FontWeight.bold)),
),
InkWell(
onTap: () {},
child: Row(
children: [
Icon(Icons.location_on_outlined, size: 33.w),
Text(
'深圳华悦茂峰',
style: TextStyle(
color: AppStyle.primaryTextColor,
fontSize: 24.sp),
),
],
),
),
],
),
],
),
),
_myListTile(Icons.contact_page, '个人信息'),
_myListTile(Icons.supervised_user_circle, '联系客服'),
_myListTile(Icons.settings, '设置'),
],
),
);
}
}
Loading…
Cancel
Save