jelly2

제리·2022년 2월 19일
0
import 'dart:async';
import 'dart:convert';
import 'dart:math';
import 'dart:ui';

import 'package:cached_network_image/cached_network_image.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:flutter_spinkit/flutter_spinkit.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:jellytalk2/jelly/jellyMain.dart';
import 'package:jellytalk2/jelly/jellyparty.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:provider/provider.dart';
import 'package:ink_page_indicator/ink_page_indicator.dart';

import '../main.dart';

class JellyHome extends StatefulWidget {
  const JellyHome({Key? key}) : super(key: key);

  
  _JellyHomeState createState() => _JellyHomeState();
}

class _JellyHomeState extends State<JellyHome> {

  var iconSize = 43.0;
  var isClicked1=true;
  var isClicked2=false;
  var isClicked3=false;
  var isClicked4=false;
  int _seletedIndex=0;
  final _scaffoldKey = new GlobalKey<ScaffoldState>();

  
  void initState() {
    // TODO: implement initState
    FirebaseFirestore.instance.collection('users').doc(FirebaseAuth.instance.currentUser?.uid).update({'최근접속시간':DateTime.now()});
    super.initState();
    WidgetsBinding.instance?.addPostFrameCallback(
            (_) => Provider.of<JellyHomeProvider>(context,listen: false).define());
    isClicked1=true;
    isClicked2=false;
    isClicked3=false;
    isClicked4=false;
    _seletedIndex=0;
  }
  
  void dispose() {
    // TODO: implement dispose
    super.dispose();
    Provider.of<JellyHomeProvider>(context,listen: false).evict();
  }

  
  Widget build(BuildContext context) {
    final providerLf = Provider.of<JellyHomeProvider>(context,listen: false);
    final provider = Provider.of<JellyHomeProvider>(context);

    return Scaffold(
      key: _scaffoldKey,
      extendBody: true,
      appBar: AppBar(
        centerTitle: false,
        elevation: 0,
        backgroundColor: Colors.white,
        leadingWidth: 100,
        leading: Padding(
          padding: const EdgeInsets.only(left:12,top:13.0),
          child: Text(
            '젤리톡',
            style: TextStyle(
                fontSize: 19,
                color: Colors.black,
                fontWeight: FontWeight.w500),
          ),
        ),
        actions: [
          Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text(
                30.toString(),
                style: TextStyle(fontSize: 18, color: Colors.black),
              ),
            ],
          ),
          Padding(
            padding: const EdgeInsets.only(left: 7.0),
            child: SvgPicture.asset('assets/images/myJelly.svg'),
          )
        ],
      ),
      body: Center(
        child: SingleChildScrollView(
          child: Column(
            children: [
              if(_seletedIndex==0) Container(
                  height: MediaQuery.of(context).size.height-80,
                  padding: EdgeInsets.all(0),
                  color: Colors.white,
                  child: Container(margin: EdgeInsets.only(top: 7), child: JellyMain())
              )
              else if (_seletedIndex==1) JellyParty()
              else if (_seletedIndex==2) Text('3')
              else if (_seletedIndex==3) Text('4')
            ],
          ),
        ),
      ),
      bottomNavigationBar: BottomAppBar(
        child: Padding(
          padding: const EdgeInsets.only(top: 7.0,bottom: 20),
          child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceEvenly,
            children: [
              GestureDetector(
                onTap: (){
                  if(isClicked1==false) {
                    setState(() {
                      _seletedIndex=0;
                      isClicked1=true;
                      isClicked2=false;
                      isClicked3=false;
                      isClicked4=false;
                      provider.nav1Active.evict();
                      provider.nav1None.evict();
                    });
                  }
                },
                  child: Image(image: isClicked1?provider.nav1Active:provider.nav1None, width: iconSize,)
              ),
              GestureDetector(
                  onTap: (){
                    if(isClicked2==false) {
                      setState(() {
                        _seletedIndex=1;
                        isClicked2=true;
                        isClicked3=false;
                        isClicked4=false;
                        isClicked1=false;
                        provider.nav2Active.evict();
                        provider.nav2None.evict();
                      });
                    }
                  },
                  child: Image(image: isClicked2?provider.nav2Active:provider.nav2None, width: iconSize,)
              ),
              GestureDetector(
                  onTap: (){
                    if(isClicked3==false) {
                      setState(() {
                        _seletedIndex=2;
                        isClicked3=true;
                        isClicked4=false;
                        isClicked1=false;
                        isClicked2=false;
                        provider.nav3Active.evict();
                        provider.nav3None.evict();
                      });
                    }
                  },
                  child: Image(image: isClicked3?provider.nav3Active:provider.nav3None, width: iconSize,)
              ),
              GestureDetector(
                  onTap: (){
                    if(isClicked4==false) {
                      setState(() {
                        _seletedIndex=3;
                        isClicked4=true;
                        isClicked1=false;
                        isClicked2=false;
                        isClicked3=false;
                        provider.nav4Active.evict();
                        provider.nav4None.evict();
                      });
                    }
                  },
                  child: Image(image: isClicked4?provider.nav4Active:provider.nav4None, width: iconSize,)
              ),
            ],
          ),
        ),
      )
    );
  }
}




profile
iOS 준비중

0개의 댓글