0

我已经根据现有问题的现有解决方案解决了上一个问题。

我想在单击 onTap 时更改作为 ListView 子项的 CustomListTile 的颜色,并将其他子项颜色设置为默认颜色?

在为抽屉创建有状态小部件时,我仍然面临问题。

这是项目的 Github 链接:https ://github.com/Aaklii/flutter_app

drawer: buildDrawer(context),

我想在稍后阶段为抽屉项目提供更多功能,所以我想创建一个有状态的小部件,但这段代码不起作用:

class ListDrawer extends StatefulWidget {
    List<ListClass> listOjects;
    ListDrawer({this.listOjects});
    @override
    _ListDrawerState createState() => _ListDrawerState();
  }

  class _ListDrawerState extends State<ListDrawer> {
    @override
    Widget build(BuildContext context) {
      return SafeArea(
        child: Column(
          children: <Widget>[
            Expanded(
              child: Padding(
                padding: EdgeInsets.all(20),
                child: ListView.builder(
                  itemCount: widget.listOjects.length,
                  itemBuilder: (context, index) {
                    return CustomListTile(
                      listObject: widget.listOjects[index],
  //                    isSelected:
  //                    selectedIndex != null && selectedIndex == index
  //                        ? true
  //                        : false,
                      index: index,
                    );
                  },
                ),
              ),
            )
          ],
        ),
      );
    }
  }

所以我目前正在使用 buildDrawer()

Drawer buildDrawer(BuildContext context) {
return Drawer(
  child: SafeArea(
    child: Column(
      children: <Widget>[
        Expanded(
          child: Padding(
            padding: EdgeInsets.all(20),
            child: ListView.builder(
              itemCount: listOjects.length,
              itemBuilder: (context, index) {
                return InkWell(
                  onTap: () {
                    setState(() {
                      onSelected(index);
                    });
                    Navigator.of(context).pop();
                  },
                  child: CustomListTile(
                    listObject: listOjects[index],
                    isSelected:
                        selectedIndex != null && selectedIndex == index
                            ? true
                            : false,
                    index: index,
                  ),
                );
              },
            ),
          ),
        )
      ],
    ),
  ),
 );
}
4

0 回答 0