mobile - 如何动态地连续排列卡片?

标签 mobile flutter dart row

我想将两张卡片排成一行,并根据手机大小动态调整它们的大小。如图所示,右边的卡由于手机尺寸小,出现溢出错误。在更大的手机上看起来不错。

忽略第一个溢出错误

screenshot

我曾尝试使用 Expanded() 或 Flexible() 包装容器,但它给出了一个错误,指出我的 parent 正在使用 GestureDetector() 而它不允许这样做。

Widget _showSecondRow(){
    return new Row(
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: <Widget>[
           new GestureDetector(
               child: Card(
                  elevation: 1,
                  semanticContainer: true,
                  clipBehavior: Clip.antiAliasWithSaveLayer,
                  child: Container(
                      color: Colors.grey.shade200,
                      padding: EdgeInsets.all(45.0),
                      child: new Column(
                         children: <Widget>[
                                new Icon(Icons.drafts, size: 30.0, color: Colors.black),
                                new Text("Private\nMessages", textAlign: TextAlign.center, style: TextStyle(color: widget.appModel.getPrimaryTextColor, fontSize: 18.0, fontWeight: FontWeight.bold),)
                              ],
                            ),
                          ),
                          shape: RoundedRectangleBorder(
                            borderRadius: BorderRadius.circular(10.0),
                  ),

               )
            ),
            new GestureDetector(
              onTap: () => Navigator.push(context, new MaterialPageRoute(builder: (context) =>
                        new SubscribedScreen()
                        )),
              child: Card(
                elevation: 1.0,
                semanticContainer: true,
                clipBehavior: Clip.antiAliasWithSaveLayer,
                child: Container(
                  color: Colors.grey.shade200,
                  padding: EdgeInsets.all(45.0),
                  child: new Column(
                    children: <Widget>[
                      new Icon(Icons.star, size: 30.0, color: Colors.black),
                      new Text("Subscribed\nThreads", textAlign: TextAlign.center, style: TextStyle(color: Colors.black, fontSize: 18.0, fontWeight: FontWeight.bold), overflow: TextOverflow.ellipsis,)
                              ],
                            ),
                          ),
                          shape: RoundedRectangleBorder(
                            borderRadius: BorderRadius.circular(10.0),
                          ),

                  )
            ),
       ],
   );
}

无论手机大小如何,我都希望这两张卡都能动态调整大小并适合手机的宽度。中间有空隙也没关系。

最佳答案

将每个 GestureDetector 包裹在 ExpandedFlexible

关于mobile - 如何动态地连续排列卡片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56936373/

相关文章:

listview - Flutter ListView.builder() 动态列表 - 显示无限重复的条目

mobile - 移动应用程序(MVC 除外)中使用的架构模式是什么?

flutter - 为什么 flutter 在 url 启动器中给我 url null ?

Flutter - 显示来自本地 json 文件的图像 url

android - Flutter - 键盘隐藏时TextFormField变为空白

firebase - 带有 Firebase 实时数据库和 futurebuilder 的 Gridview.builder

dart - Flutter 可忽略的唯一键

jquery - 手机快速点击-防止鬼焦

PHP T9 手机键盘

mobile - 使用 noindex nofollow 修复来自谷歌的移动可用性警告