【问题标题】:how can i change drawer items on user state flutter我如何更改用户状态颤动的抽屉项目
【发布时间】:2021-02-03 11:46:32
【问题描述】:

如何根据用户状态更改颤动的抽屉项目 抽屉有 2 项登录和注销,当我按下注销时,用户已注销,但抽屉没有改变注销按钮仍然可见,我应该重新加载页面,使其消失并出现登录按钮

if (_auth.currentUser == null)
                Column(
                  children: [
                    ListTile(
                      title: Text('Sign In'),
                      onTap: () {
                        Navigator.push(
                          context,
                          MaterialPageRoute(builder: (context) => SignIn()),
                        );
                      },
                    ),
                  ],
                )
              else
                Column(
                  children: [
                    ListTile(
                      title: Text('My Cars'),
                      onTap: () {
                        Navigator.push(
                          context,
                          MaterialPageRoute(builder: (context) => MyCars()),
                        );
                      },
                    ),
                    ListTile(
                      title: Text('Sign Out'),
                      onTap: () {
                        signOut();
                        
                      },
                    ),
                  ],
                ),

登录还具有导航功能,可以导航到具有抽屉的屏幕,但是当这种情况发生时,抽屉仍然显示登录按钮,我应该再次导航以更改它

【问题讨论】:

    标签: firebase flutter authentication refresh drawer


    【解决方案1】:

    将 listile 包装到 visibility 小部件中,

    Visibility (
        visible: _visible
        child: ListTile(...)
    );
    

    声明一个布尔变量_visible 并设置它的值。您可以检查所有条件并在setState 中将其设为真假以隐藏和显示ListTile

    setState(() {
        _visible = false;
    });
    
    setState(() {
        _visible = true;
    });
    

    【讨论】:

    • 它适用于我的注册列表标题,但 idk 知道如何在登录时应用此更改,因为它在另一个屏幕上你知道如何做到这一点吗?
    猜你喜欢
    • 1970-01-01
    • 2020-04-20
    • 1970-01-01
    • 1970-01-01
    • 2022-07-20
    • 1970-01-01
    • 1970-01-01
    • 2018-06-15
    • 2022-11-15
    相关资源
    最近更新 更多