【问题标题】:How to implement select in list?如何在列表中实现选择?
【发布时间】:2022-07-06 23:32:38
【问题描述】:

我有一个带有分页的职位列表。我需要用户能够选择一个位置并保存它。现在我有这样一个问题,当我在一个页面上打上复选标记并选择一个位置,然后转到第二个,那么这个复选标记就保存在同一个地方。当你把它放在一个位置并浏览页面时,它在同一个位置。如何解决这个问题?(照片显示了翻页时的工作原理示例)。

int? _selectedPosition;

child: ListView.separated(
  shrinkWrap: true,
  itemCount: _positionsList?.length ?? 0,
  itemBuilder: (context, index) {
    return ListTile(
      trailing: _checkPosition(index)
          ? Image.asset(
              Assets.assetsCheckmark,
              width: 13,
              height: 10,
            )
          : const SizedBox.shrink(),
      title: Text(_positionsList![index].name ?? ''),
      onTap: () => _selectPosition(index),
    );
  },
  separatorBuilder: (context, index) {
    return const Divider();
  },
),

void _selectPosition(int index) {
  if (_selectedPosition != index) {
    setState(() {
      _selectedPosition = index;
    });
  } else {
    setState(() {
      _selectedPosition = null;
    });
  }
}
bool _checkPosition(int index) {
  return _selectedPosition == index ? true : false;
}

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    您似乎正在使用所选问题的索引,而不是您需要为每个选项提供一个唯一的 ID,或者您需要在提交步骤时清除 _selectedPosition

    【讨论】:

      猜你喜欢
      • 2016-08-31
      • 1970-01-01
      • 2020-11-11
      • 2023-02-16
      • 2016-11-09
      • 2014-12-16
      • 2019-01-14
      • 2011-05-30
      • 2017-03-26
      相关资源
      最近更新 更多