首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >怎么样保证在build 的时候 pagelist 不为空?

怎么样保证在build 的时候 pagelist 不为空?

提问于 2022-11-15 17:00:31
回答 0关注 0查看 53
代码语言:javascript
复制
import 'package:dfznapp/pages/person_center/person_center_page.dart';
import 'package:dfznapp/pages/user/user_list_page.dart';
import 'package:dfznapp/utils/constants.dart';
import 'package:flutter/material.dart';
import '../../utils/data_handle.dart';
import 'index_page.dart';


class HomePage extends StatefulWidget {
  static String tag = "home";

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  int _selectedIndex = 0;

  List<StatefulWidget> pagelist=[];
  late int roleid=0;

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    _initLoginInfo();

  }

  /// 记住密码的账号密码信息
  void _initLoginInfo() async {
    print("init------------------");
    var res1 = await DataUtil.getData(Constants.LOGIN_ROLEID);
    // var res2 = await DataUtil.getData(Constants.LOGIN_USERID);
    // var res3 = await DataUtil.getData(Constants.LOGIN_USERNAME);
    print("-----------------------");
    roleid=int.parse(res1);
    setState( () {} );
  }


  @override
  Widget build(BuildContext context) {
    print("build------------------");
    if(roleid==1){
      pagelist= [IndexPage(), UserListPage(), PersonCenterPage()];
    }
    if(roleid==2){
      pagelist= [IndexPage(), PersonCenterPage()];
    }
    print(pagelist);
       return Scaffold(
        backgroundColor: Colors.white,
        bottomNavigationBar: BottomNavigationBar(
          type: BottomNavigationBarType.fixed,
          //如果你的icon没有设置color,选中的时候就会用到fixedColor的颜色,当BottomNavigationBarType是BottomNavigationBarType.shifting的时候,这个属性是不起作用的
          //fixedColor: Colors.blue,
          currentIndex: _selectedIndex,
          selectedItemColor: Colors.blue,
          // unselectedItemColor: Colors.amber[800],
          onTap: _onItemTapped,
          items: <BottomNavigationBarItem>[
            BottomNavigationBarItem(
              icon: Icon(
                Icons.home,
              ),
              label: ('首页'),
            ),
            BottomNavigationBarItem(
              icon: Icon(
                Icons.people,
              ),
              label: ('人员列表'),

            ),
            BottomNavigationBarItem(
                icon: Icon(
                  Icons.person,
                ),
                label: (
                  '个人中心'
                )
            ),
          ],
        ),
        body: pagelist[_selectedIndex],
    );
  }

  void _onItemTapped(int index) {
    print("_onItemTapped的index值是:"+index.toString());
    setState(() {
      _selectedIndex = index;
    });
  }
}

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档