大家好,

我最近开始构建我的第一个Flight应用程序,目前我不喜欢我的设计,想要更改它,使图片显示在容器的左侧,文本显示在它旁边.这将使每个容器更小,更易于导航.但我对如何做到这一点束手无策.我最初使用的是一个网格视图,它可以正确地显示,但我决定使用列表视图,这对我的应用程序来说会更好.

child: ListView.builder( //gridview.builder
          itemCount: pdfData.length,
          //gridDelegate: 
          //SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
          itemBuilder: (context, index) {
            return Padding(
              padding: const EdgeInsets.all(8.0),
              child: InkWell(
                onTap: () {
                  Navigator.of(context).push(MaterialPageRoute(builder: (context) => PdfViewerScreen(pdfUrl: pdfData[index]['url'])),);
                },
                child: Container(
                  decoration: BoxDecoration(
                    border: Border.all(),
                  ),
                  
                  child: Column(
                    mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                    children: [
                      Image.asset(
                        "lib/images/woolworths.png",
                        height: 120,
                        width: 100,
                      ),
                      Text(
                        pdfData[index]['name'],
                        style: TextStyle(
                          fontSize: 18,
                        ),
                      ),
                    ],
                  ),
                ),
              ),
            );
          },

PS.文本和文件是从我的Firebase存储中填充的.它的工作方式:)

enter image description here

推荐答案

在此处使用小部件列表磁贴.

ListTile(
        leading: Image.asset(
                    "lib/images/woolworths.png",
                    height: 120,
                    width: 100,
                  ),
        title: Text(
                    pdfData[index]['name'],
                    style: TextStyle(
                      fontSize: 18,
                    ),
      ),)

整个代码将如下所示:

child: ListView.builder( //gridview.builder
      itemCount: pdfData.length,
      //gridDelegate: 
      //SliverGridDelegateWithFixedCrossAxisCount(crossAxisCount: 2),
      itemBuilder: (context, index) {
        return Padding(
          padding: const EdgeInsets.all(8.0),
          child: InkWell(
            onTap: () {
              Navigator.of(context).push(MaterialPageRoute(builder: (context) => PdfViewerScreen(pdfUrl: pdfData[index]['url'])),);
            },
            child: Container(
              decoration: BoxDecoration(
                border: Border.all(),
              ),
              
              child: ListTile(
             leading: Image.asset(
                    "lib/images/woolworths.png",
                    height: 120,
                    width: 100,
                  ),
              title: Text(
                    pdfData[index]['name'],
                    style: TextStyle(
                      fontSize: 18,
               ),
         ),)
            ),
          ),
        );
      },)

您还可以将其包装在Card小部件中,以区分不同的磁贴.

Card( child: ListTile(
        leading: Image.asset(
                    "lib/images/woolworths.png",
                    height: 120,
                    width: 100,
                  ),
        title: Text(
                    pdfData[index]['name'],
                    style: TextStyle(
                      fontSize: 18,
                    ),
                   )
                 ,))

Flutter相关问答推荐

无法在GroupButton内部正确呈现

将图标呈现在Flutter 克牌小工具的角落上

Flutter 隔离.使用多个参数运行

如何在抖动中预加载一条路由,或者即使在屏幕外也保持加载小工具?

缩短经常使用的行Theme.of(context).colorScheme

如何从文本比例因子迁移到文本比例因子

使用Ffltter CREATE创建项目时,androidManifest.xml中缺少包属性

使用现有Map方法对子类克隆方法的逻辑进行Dart标准化

Flutter 附近的连接

谷歌 map 在 flutter 应用程序中显示错误的当前位置

ScaffoldMessenger 在等待键下方不起作用

如何修改来自合并 list 的 Android list 权限?

在我使用 flutter_riverpod stateprovider 重新保存代码之前,UI 主题状态不会更新

如何从 Flutter 中的 App2 远程点击 App1 中的按钮

Flutter:如何从运行时创建的列表中访问单个子部件的值

Paypal 支付网关添加带有 magento 2 网络详细信息用户名、密码、签名 Magento 2 的 flutter 应用程序?

Flutter RIverpod 奇怪地改变状态

如何为文本主题设置多种 colored颜色 ?

在 flutter 中使用 Firebase 实时数据库数据创建无限滚动效果

如何在 ElevatedButton 上设置背景 colored颜色 动画?