美文网首页
flutter设置启动页和欢迎页

flutter设置启动页和欢迎页

作者: 男人宫 | 来源:发表于2022-01-07 09:52 被阅读0次
  • 启动页是程序每次启动都会显示的页面.这里处理的办法就是进入程序后跳转这个页面,折腾页面作为启动页,然后再根据判断有无登录来跳转登录页或者首页.什么是欢迎页在这里不做解释了,在这里做了最简单的处理,用swiper处理的,和启动页共有一个页面.(启动页的话安卓和苹果端如果出现白屏分别去设置加图就可以了,网上百度下即可)
  • 很简单逻辑,源码如下
import 'package:flutter/material.dart';
import 'show_tools.dart';
import 'package:flutter_swiper/flutter_swiper.dart';

class StartPage extends StatefulWidget {
  //启动页
  @override
  _StartPageState createState() => _StartPageState();
}

class _StartPageState extends State<StartPage> {
  bool _islogin = false;
  bool _isFirst =false;
  bool _islastPage = false;
  List _welcomeList = ["welcome_1.png","welcome_2.png","welcome_3.png"];
  @override
  void initState() {
    super.initState();
    //判断是不是第一次启动
    _isFirst = SpUtil.getBool("first");
    if(_isFirst){
      String tokenStr = SpUtil.getString("token");
      _islogin = (tokenStr == null || tokenStr.length == 0) ? false : true;
      new Future.delayed(Duration(seconds: 1), () {
        //1秒后跳转到其他路由
        Navigator.of(context).pushReplacementNamed(_islogin ? "/" : "/login");
      });
    }

  }

  @override
  Widget build(BuildContext context) {
    return Container(
        color: Colors.white,
        child: _isFirst ? Image.asset("assets/startiamg/m_splash.png", fit: BoxFit.fill)
          : Stack(
          children: [
            Swiper(
              itemBuilder: (BuildContext context, int index) {
                print(index);
                return new Image.asset(
                  "assets/welcomeimage/${_welcomeList[index]}",
                  fit: BoxFit.fill,
                );
              },
              itemCount: _welcomeList.length,
              loop: false,
              itemWidth: kWith,
              itemHeight: kHeight,
              onIndexChanged:(index){
              if(index == _welcomeList.length - 1){
                setState(() {
                  _islastPage = true;
                });
              }else{
                setState(() {
                  _islastPage = false;
                });
              }
               },
            ),
            _islastPage ? Container(
              width: 100,
              height: 40,
              margin: EdgeInsets.only(left: kWith/2-50,bottom: 40,top: kHeight - 80,right: kWith/2-50),
              decoration: BoxDecoration(
                border: Border.all(color: Colors.white,width: 1),
              ),
              child: Center(
                child: TextButton(
                  onPressed: (){
                    _goWelcome();
                  },
                  child: Text("立即体验",style: TextStyle(color: Colors.white,fontSize: 15,decoration: TextDecoration.none,),),
                ),
              ),
            ):Container()
          ],
        ));
  }

  _goWelcome(){
    SpTools.saveBool("first", true);
    String tokenStr = SpUtil.getString("token");
    _islogin = (tokenStr == null || tokenStr.length == 0) ? false : true;
    Navigator.of(context).pushReplacementNamed(_islogin ? "/" : "/login");
  }

}

相关文章

  • flutter设置启动页和欢迎页

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

  • App页面分类

    引导页(欢迎页) 过渡页(启动页) 加载页 沉浸式页面 功能页,eg: 登陆、注册,设置,发布… 列表页 正文页,...

  • 2019-11-11

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

  • 一个不错的Flutter项目示例

    flutter_wanandroid项目已全部开源。欢迎Star&Fork。 本项目包含启动页,引导页,主题色,国...

  • flutter 启动页设置(Android端)

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

  • 我的Flutter开源库集合

    一个完整的Flutter APP项目Flutter 启动页+闪屏广告页+引导页 Flutter 圆形/圆角头像 ...

  • APP启动次数判断

    APP的启动次数判断,用来设置引导图欢迎页登录等设置

  • 设置欢迎页

    点击Image.xcassets 进入图片管理,然后右击,弹出"New Launch Image", 没有Imag...

  • Flutter 启动页

    启动页 IOS启动页,在ios/Runner/Assets.xcassets/LaunchImage.images...

  • flutter 启动页

网友评论

      本文标题:flutter设置启动页和欢迎页

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