dart 在alertDialog中不显示无线电的 Flutter 列表视图

lzfw57am  于 2023-06-03  发布在  Flutter
关注(0)|答案(2)|浏览(142)

这是密码代码:

class ThemeChangerWidget extends StatelessWidget {
  final List<String> string = ['Light', 'Dark', 'Amoled'];
  @override
  Widget build(BuildContext context) {
  final stateData = Provider.of<ThemeNotifier>(context);
  final ThemeData state = stateData.getTheme();

  return Theme(
  data: state.copyWith(unselectedWidgetColor: state.accentColor),
  child: AlertDialog(
      backgroundColor: state.primaryColor,
      shape:
          RoundedRectangleBorder(borderRadius: BorderRadius.circular(8.0)),
      title: Text('Select Theme', style: state.textTheme.body1),
      content: ListView.builder(
        shrinkWrap: true,
        itemBuilder: (context, index) {
          return RadioListTile(
            value: index,
            groupValue: themes.indexOf(state),
            onChanged: (ind) {
              onThemeChanged(ind, stateData);
            },
            title: Text(
              string[index],
              style: state.textTheme.body2,
            ),
          );
        },
        itemCount: string.length,
      )),
      );
     }
     }'

errors-在performLayout()过程中引发了以下Assert:
RenderShrinkWrappingViewport不支持返回内部尺寸。
有时抛出此错误而不是高于LayoutBuilder does not support returning intrinsic dimensions.
计算固有尺寸需要示例化视口的每个子对象,这就消除了视口懒惰的缺点。如果您只是尝试在主轴方向上对视口进行包络处理,则应该能够通过仅为视口提供宽松的约束来实现该效果,而无需测量其内部尺寸。

vfh0ocws

vfh0ocws1#

AlertDialog使用不允许ListView.builderIntrinsicWidth小部件。你必须给予你的ListView一个特定的宽度示例:

return AlertDialog(
      title: Text('Dialog'),
      content: SizedBox(
        width: double.maxFinite,
        child: ListView(
          children: <Widget>[
           //Your content here
          ],
        ),
      ),
    );
af7jpaap

af7jpaap2#

没有得到正确的方式来获取数据从API在对话框中,而不是使用Statefulbuilder,也 Package 与大小框,但没有得到正确的路径,其唯一使用索引与void函数甚至数据将打印只与索引的int函数。

相关问题