【问题标题】:How to create submenu dropdown in flutter如何在颤振中创建子菜单下拉菜单
【发布时间】:2021-09-17 14:35:58
【问题描述】:

我正在处理侧边栏,我需要向已经存在的菜单项添加一个子菜单。

我有两个文件,menu_items.dart 和 sidebar.dart。 Menu_Items 代码:

import 'package:flutter/material.dart';

class MenuItem extends StatelessWidget {
  const MenuItem({Key key, this.icon, this.title, this.onTap})
      : super(key: key);
  final IconData icon;
  final String title;
  final Function onTap;
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: onTap,
      child: Padding(
        padding: const EdgeInsets.all(16),
        child: Row(
          children: [
            Icon(
              icon,
              color: Colors.white,
              size: 20,
            ),
            SizedBox(
              width: 20,
            ),
            Text(
              title,
              style: TextStyle(
                fontWeight: FontWeight.w300,
                fontSize: 15,
                color: Colors.white,
              ),
            ),
          ],
        ),
      ),
    );
  }
}

这就是我在 Sidebar.dart 中使用它的方式:

   MenuItem(
      icon: Icons.sensor_window,
      title: 'Sensor Parameters',
      ),

问题是,我需要制作传感器参数

一个父下拉列表,其中包含我已经拥有的菜单项列表。子菜单下拉项是:

TemChartClickEvent,
 HumChartClickEvent,
 MoisChartClickEvent,
 PhChartClickEvent,
 NurChartClickEvent,
 GasChartClickEvent,

使用 bloc 模式创建。 父菜单:

MenuItem(
      icon: Icons.sensor_window,
      title: 'Sensor Parameters',
      ),

我一直在互联网上寻找一个好的资源并制作菜单,但是我无法让它发挥作用。

任何人都可以帮我设置它,假设我上面已经有 MenuItem 代码,我如何适应另一组代码调用 DropDownMenu 及其功能,然后将其传递给父菜单,上面的“MenuItem”代码

【问题讨论】:

    标签: flutter menu flutter-layout flutter-dropdownbutton


    【解决方案1】:

    您已通过 ExpansionTile 小部件或已使用 multilevel_drawer package

    Drawer(
      child: ListView(
      children: <Widget>[
      ExpansionTile(
      title: Text("Expansion Title"),
        children: <Widget>[Text("children 1"), Text("children 2")],
      )
     ],
     ),
    );
    

    【讨论】:

    • 现在我有了 MenuItem 类,如何在不与我的冲突的情况下将子菜单项放入 MLMenuItem 中?
    • 尝试将MenuItem( icon: Icons.sensor_window, title: 'Sensor Parameters', ),替换为expansiontile子项中的文本小部件
    • 我收到此错误:RenderBox 未布置:RenderSemanticsAnnotations#25c5c relayoutBoundary=up13 NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE 'package:flutter/src/rendering/box.dart':断言失败:第 1940 行第 12 行:'hasSize'
    • 尝试将 MenuItem 添加到 Expanded 或 Flexible Widget 中,例如 Expanded(child:MenuItem(icon: Icons.sensor_window,title: 'Sensor Parameters',),),
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 2018-11-23
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多