【问题标题】:Stacking conditional navigator buttons in Flutter在 Flutter 中堆叠条件导航器按钮
【发布时间】:2020-10-22 10:33:29
【问题描述】:

我正在尝试为滑动菜单创建条件菜单列表。到目前为止,我已经获得了可以为不同类型的用户显示不同菜单项的功能。但我现在唯一的问题是,在菜单中,“消息”和“设置”这两项并排显示。我试图将第二个图标行移到行括号之外,依此类推。我只是想不通。这些括号对我来说已经很混乱了。有人可以看看这个并帮助我在消息下获取设置图标吗?

我已经包含了完整的方法 sn-p 所以每个人都可以知道我正在尝试做什么。这是我知道如何使我的菜单有条件的唯一方法。

customSlideMenu() {
    Function onTap;
    bool ownProfile = currentOnlineUserId == widget.userProfileId;
    if(ownProfile) {
      return Padding(
        padding: const EdgeInsets.fromLTRB(15.0, 0, 8.0, 0),
        child: InkWell(
          splashColor: Colors.blue,
          onTap: onTap,
          child: Container(
            height: 40,
            child: Row(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: <Widget>[
                Row(
                  children: <Widget>[
                    Icon(Icons.mail),
                    Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Text(
                        "Messages",
                        style: TextStyle(fontSize: 16.0),
                      ),
                    ),
                    Icon(Icons.settings),
                    Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Text(
                        "Settings",
                        style: TextStyle(fontSize: 16.0),
                      ),
                    ),
                  ],
                ),
              ],
            ),
          ),
        ),
      );
    } else {
      return Padding(
        padding: const EdgeInsets.fromLTRB(15.0, 0, 8.0, 0),
        child: InkWell(
          splashColor: Colors.blue,
          onTap: onTap,
          child: Container(
            height: 40,
            child: Row(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: <Widget>[
                Row(
                  children: <Widget>[
                    Icon(Icons.mail),
                    Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Text(
                        "Message",
                        style: TextStyle(fontSize: 16.0),
                      ),
                    ),
                    Icon(Icons.block),
                    Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Text(
                        "Block",
                        style: TextStyle(fontSize: 16.0),
                      ),
                    ),
                  ],
                ),
              ],
            ),
          ),
        ),
      );
    }
  }

【问题讨论】:

    标签: flutter navigation flutter-layout flutter-navigation


    【解决方案1】:

    Row 小部件将其子元素彼此相邻对齐。尝试使用 Column 小部件来实现将两个孩子堆叠在一起

            Column(
              children: <Widget>[
                Row(
                  children: <Widget>[
                    Icon(Icons.mail),
                    Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Text(
                        "Messages",
                        style: TextStyle(fontSize: 16.0),
                      ),
                    ),
                  ],
                ),
                Row(
                  children: <Widget>[
                    Icon(Icons.settings),
                    Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Text(
                        "Settings",
                        style: TextStyle(fontSize: 16.0),
                      ),
                    ),
                  ],
                )
              ],
            ),
    

    【讨论】:

    • 好的,我试过了,它奏效了,让它们堆叠在一起!但现在唯一的问题是,文本也堆积在图标下。我如何才能将文本保留在其各自的图标旁边?
    • @Indigo 我刚刚更新了代码。我用 Row 小部件包装了每个图标和文本,这样包含图标和文本的 Row 小部件就是相互堆叠的小部件。如果有帮助请标记为答案
    • 非常感谢,它非常有帮助。现在我已经完成了它的设计方面,我将尝试让 onTap 导航功能为这些条件按钮工作。如果我无法弄清楚,你介意我让你的大脑来解决这个问题吗?
    • 当然,只需打开另一个问题并在需要帮助时用问题的链接标记我
    • 你觉得你能帮我做这个吗? @ByteMe stackoverflow.com/questions/62895099/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 2020-11-02
    • 1970-01-01
    • 2019-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多