【问题标题】:Flutter : How to pass asset path to a new Screen classFlutter:如何将资产路径传递给新的 Screen 类
【发布时间】:2021-11-16 07:43:50
【问题描述】:

我需要将作为文本文件的资产路径传递给新屏幕。我想通过使用 OnTap() 从 ListTile 传递该资产路径,并将该路径传递给新的屏幕类。

资产路径:

'lib/asset/textfile/cs_one.txt'

我的 ListTile:

ListTile(
      leading: CircleAvatar(
        backgroundImage: AssetImage("image/icon.png"),
      ),
      title: Text("Story One"),
      trailing: Icon(Icons.arrow_forward),

        onTap: () {
          Navigator.push(
            context,
            MaterialPageRoute(builder: (context) => cs_one() ),
          );
        }

我想将路径传递给另一个类,这是一个新屏幕,我将从那里加载资产数据。我知道如何加载资产数据,我只是需要帮助将它从 ListTile 传递到新的屏幕类。

【问题讨论】:

    标签: flutter path assets pass-data


    【解决方案1】:

    以下是在 Flutter 中将数据传递给另一个小部件的方法:

    class MyWidget extends StatelessWidget {
    
      const MyWidget({Key? key}) : super(key: key);
      final String assetPath = 'lib/asset/textfile/cs_one.txt';
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          appBar: AppBar(),
          body: Center(
            child: ListTile(
              leading: CircleAvatar(
                backgroundImage: AssetImage(assetPath),
              ),
              title: const Text("Story One"),
              trailing: const Icon(Icons.arrow_forward),
              onTap: () {
                Navigator.push(context, MaterialPageRoute(
                  builder: (context) => NextScreen(assetPath: assetPath)
                ));
              }
            ),
          )
        );
      }
    }
    
    class NextScreen extends StatelessWidget {
    
      final String assetPath;
      const NextScreen({Key? key, required this.assetPath}) : super(key: key);
    
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: Center(
            child: Text(assetPath),
          ),
        );
      }
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    相关资源
    最近更新 更多