【问题标题】:How do I display name (without extension) of files from assets folders in flutter如何在颤动中显示资产文件夹中文件的名称(不带扩展名)
【发布时间】:2021-03-10 00:37:56
【问题描述】:

我的资产文件夹中有一些音乐文件,我想自动将它们显示在列表中,而不必为文件夹中的每首音乐写一行。

我认为像ListView.builder 这样的东西可能会起作用,但我对这一切都很陌生,不太确定如何正确执行。

【问题讨论】:

    标签: list flutter dart assets


    【解决方案1】:

    由于无法从 Flutter 项目中的 /assets 文件夹中获取音乐文件的名称,我认为您可以尝试以下方法:

    • 有一个 json 文件列出文件的所有元数据(名称、艺术家、/assets 中的路径等)并使用该文件(获取名称、获取文件的路径等)。
    • 在线存储您的音乐并通过 API 获取它们
    • /assets中的所有音乐复制到手机目录中,然后从现在开始处理该目录中的文件(例如:致电this method获取文件名)。查看this answer

    如果您要显示的内容与您描述的图像一样,并且名称不重要(例如铃声),那么您可以简单地这样做(假设您按 1-10 的数字命名文件):

    import 'package:flutter/material.dart';
    
    void main() {
      runApp(MaterialApp(
        home: SampleScreen(),
      ));
    }
    
    class SampleScreen extends StatefulWidget {
      @override
      _SampleScreenState createState() => _SampleScreenState();
    }
    
    class _SampleScreenState extends State<SampleScreen> {
      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: ListView.builder(
              itemCount: 10,
              itemBuilder: (context, index) => _buildMusicItem(index)),
        );
      }
    
      Widget _buildMusicItem(int index) {
        return Container(
          height: 40,
          margin: EdgeInsets.all(5),
          padding: EdgeInsets.only(left: 10),
          decoration: BoxDecoration(
              borderRadius: BorderRadius.circular(20),
              border: Border.all(color: Colors.red, width: 2)),
          alignment: Alignment.centerLeft,
          child: Text('Music ${index + 1}'),
        );
      }
    }
    

    结果:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-26
      • 2013-04-12
      • 1970-01-01
      • 2015-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多