Flutter 在列表之间切换时,动态多级CupertinoPicker会扭曲第一个文本项的对齐方式

Flutter 在列表之间切换时,动态多级CupertinoPicker会扭曲第一个文本项的对齐方式,flutter,flutter-cupertino,cupertinopicker,Flutter,Flutter Cupertino,Cupertinopicker,我正在尝试创建一个动态的多层次CupertinoPicker。从第一个列表中选择位置类型时,将显示与该类型匹配的位置列表。这部分工作正常,问题是如果我切换到不同的位置列表,第二个位置列表的第一个文本小部件将根据第一个位置列表的第一个文本小部件缩进 我已经尝试使用“alignment:TextAlignment.center”指定文本小部件应该与中心对齐。在位置列表之间交换时,我还尝试将位置设置为null。这些都没有解决问题,也没有任何明显的效果 返回列 mainAxisAlignment:mai

我正在尝试创建一个动态的多层次CupertinoPicker。从第一个列表中选择位置类型时,将显示与该类型匹配的位置列表。这部分工作正常,问题是如果我切换到不同的位置列表,第二个位置列表的第一个文本小部件将根据第一个位置列表的第一个文本小部件缩进

我已经尝试使用“alignment:TextAlignment.center”指定文本小部件应该与中心对齐。在位置列表之间交换时,我还尝试将位置设置为null。这些都没有解决问题,也没有任何明显的效果

返回列 mainAxisAlignment:mainAxisAlignment.center, crossAxisAlignment:crossAxisAlignment.center, 儿童:[ 容器 填充:EdgeInsets.Only底部:5.0, 高度:扒手, 宽度:logicalSize.width, 孩子:CupertinoPicker 背景颜色:Colors.white, itemExtent:32.0, onSelectedItemChanged:selectedIndex{ 设定状态{ 位置=空; locationType=locationTypeList[selectedIndex]; }; }, 子项:pickerLocationType, , , 容器 高度:扒手, 宽度:logicalSize.width, 孩子:CupertinoPicker 背景颜色:Colors.white, 项目范围:30.0, onSelectedItemChanged:selectedIndex{ 设定状态{ 位置=空; 如果locationType==“校园”{ 位置=校园列表[selectedIndex]; } 如果locationType==“城市”{ 位置=城市列表[selectedIndex]; } }; }, 子项:pickerMap[locationType], , , 结果应该是,第一行是将此集合想象成一个CupertinoPicker:

-----------------城市1-------------------

-----------------城市2-------------------

但它看起来更像:

----------------城市1---------------------

-----------------城市2-------------------


如果需要图片,我将编辑此文章及其链接。

我发现了解决方案。请参阅以下内容:

Container(
          key: ValueKey(this._locationType),
          height: pickerHeight,
          width: logicalSize.width,
          child: CupertinoPicker(
            backgroundColor: Colors.white,
            itemExtent: 30.0,
            onSelectedItemChanged: (selectedIndex) {
              setState(() {
                location = null;
                if (locationType == 'Campus') {
                  location = campusList[selectedIndex];
                }
                if (locationType == 'City') {
                  location = cityList[selectedIndex];
                }
              });
            },
            children: pickerMap[locationType],
          ),
        ), 

您应该描述解决方案,而不仅仅是粘贴一堆代码!看看您的示例,您似乎添加了key:ValueKeythis.\u locationType。我尝试设置密钥,它对我起了作用。我希望您在回答中写下这一点,这样我就不必比较代码来尝试找出您所做的更改。更新您的答案,我将删除它他投了反对票。