如何在 flutter 中实现这种随机宽度的 gridview

How to achive this random width grid view in flutter

这些文本将来自休息API。我需要在底部显示这些 sheet。但我不应该保持宽度固定。相反,容器的宽度将取决于文本的长度。如何在 flutter 中实现这个?

GridView.builder(
                  shrinkWrap: true,
                  physics: NeverScrollableScrollPhysics(),
                  padding: EdgeInsets.all(0),
                  itemCount: controller.data.length,
                  gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
                    crossAxisCount: 4,
                  ),
                  itemBuilder: (BuildContext context, int index) {
                    return Obx(() => controller.fakeObs.isTrue
                        ? InkWell(
                            onTap: () {
                              controller.commentTap(
                                  text: "${controller.data[index]}");
                            },
                            child: Container(
                              color: Colors.white,
                              child: Text("${controller.data[index]}"),
                            ),
                          )
                        : Container());
                  },
                )

不是正确答案但很有帮助..你可以这样做 宽度:控制器。数据[索引]。长度 * 10 + 20

这里的 10 可以是任意数字,但是你想设置宽度,20 是水平填充.. 左边 10,右边 10。

我找到了一个符合我目的的小部件。在这里分享

Wrap(
                    spacing: 8.0, // gap between adjacent chips
                    runSpacing: 4.0, // gap between lines
                    children: <Widget>[
                      for (int index = 0;
                          index < controller.data.length;
                          index++)
                        FilterChip(
                          backgroundColor: Colors.white,
                          elevation: 5,
                          labelStyle: TextStyle(
                              color: Colors.white,
                              fontWeight: FontWeight.bold),
                          label: Text(
                            "${controller.data[index]}",
                            style: TextStyle(
                                fontSize: 10,
                                fontWeight: AppTextStyle.mediumFont,
                                color: AppColors.TextGrey),
                          ),
                          onSelected: (bool value) {
                            print(
                                "DATA IS ${controller.data[index]} $value");
                          },
                        )
                    ],
                  ),