Flutter&鸿蒙next中封装一个列表组件

简介: Flutter&鸿蒙next中封装一个列表组件
  1. 创建Flutter项目
    首先,确保你已经安装了Flutter SDK,并创建一个新的Flutter项目:

flutter create podcast_app
cd podcast_app

  1. 封装列表组件
    我们将在lib目录下创建一个新的文件,命名为podcast_list.dart,用于封装播客列表。

import 'package:flutter/material.dart';

class Podcast {
final String title;
final String description;

Podcast(this.title, this.description);
}

class PodcastList extends StatelessWidget {
final List podcasts;

PodcastList({required this.podcasts});

@override
Widget build(BuildContext context) {
return ListView.builder(
itemCount: podcasts.length,
itemBuilder: (context, index) {
final podcast = podcasts[index];
return Card(
margin: const EdgeInsets.symmetric(vertical: 8.0),
child: ListTile(
title: Text(podcast.title),
subtitle: Text(podcast.description),
onTap: () {
// 点击处理逻辑
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('你选择了播客: ${podcast.title}')),
);
},
),
);
},
);
}
}

  1. 使用列表组件
    现在,我们可以在主应用文件中使用这个播客列表组件。在lib/main.dart中,我们将创建一个简单的UI,展示多个播客。

import 'package:flutter/material.dart';
import 'podcast_list.dart'; // 导入播客列表组件

void main() {
runApp(PodcastApp());
}

class PodcastApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Podcast App',
home: PodcastHomePage(),
);
}
}

class PodcastHomePage extends StatelessWidget {
// 示例播客数据
final List podcasts = [
Podcast('播客一', '这是播客一的描述'),
Podcast('播客二', '这是播客二的描述'),
Podcast('播客三', '这是播客三的描述'),
Podcast('播客四', '这是播客四的描述'),
Podcast('播客五', '这是播客五的描述'),
];

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('播客列表'),
),
body: PodcastList(podcasts: podcasts), // 使用播客列表组件
);
}
}

  1. 运行应用
    在终端中运行以下命令以启动应用:

flutter run

相关文章
|
8天前
|
安全 API 数据处理
鸿蒙next版开发:ArkTS组件通用属性(隐私遮罩)
在HarmonyOS 5.0中,ArkTS引入了隐私遮罩功能,用于保护用户隐私和数据安全。本文详细介绍了隐私遮罩的通用属性和使用方法,并提供了示例代码。隐私遮罩支持Image和Text组件,在数据加载或处理过程中防止敏感信息泄露,提升用户体验和数据安全性。
31 11
|
8天前
|
开发者 UED 容器
鸿蒙next版开发:ArkTS组件通用属性(Flex布局)
在HarmonyOS next中,ArkTS的Flex布局是一种强大且灵活的布局方式,支持水平或垂直方向排列元素,并能动态调整大小和位置以适应不同屏幕。主要属性包括justifyContent、alignItems、direction和wrap,适用于导航栏、侧边栏和表单等多种场景。示例代码展示了如何使用这些属性创建美观的布局。
33 10
|
8天前
|
开发者 容器
鸿蒙next版开发:ArkTS组件通用属性(文本通用)
在HarmonyOS 5.0中,ArkTS提供了丰富的文本通用属性,如textAlign、maxLines、textOverflow、fontSize、fontColor、fontStyle、fontWeight、fontFamily、lineHeight、letterSpacing和decoration等,用于实现多样的文本显示和样式效果。本文详细解读了这些属性,并提供了示例代码,帮助开发者更好地利用这些工具,提升应用界面的美观和实用性。
39 8
|
8天前
|
UED 开发者 容器
鸿蒙next版开发:ArkTS组件通用属性(位置设置)
在HarmonyOS next中,ArkTS提供了align、direction、position、markAnchor、offset和alignRules等通用属性,用于精确控制组件在用户界面中的位置和布局。本文详细解读了这些属性,并提供了示例代码进行说明。通过这些属性,开发者可以实现精确布局、动态界面调整和提升用户体验。
38 6
|
8天前
|
UED 开发者 容器
鸿蒙next版开发:ArkTS组件通用属性(布局约束)
在HarmonyOS next中,ArkTS提供了一系列通用属性来设置组件的布局约束,使开发者能够灵活控制组件的布局行为。本文详细解读了这些属性,包括`space`、`justifyContent`、`alignItems`、`layoutWeight`、`matchParent`和`wrapContent`,并通过示例代码展示了它们的使用方法。这些属性有助于实现响应式布局、动态界面调整和提升用户体验。
30 5
HarmonyOS实战—组件的外边距和内边距
HarmonyOS实战—组件的外边距和内边距
274 0
HarmonyOS实战—组件的外边距和内边距
|
2天前
|
Android开发
鸿蒙开发:自定义一个简单的标题栏
本身就是一个很简单的标题栏组件,没有什么过多的技术含量,有一点需要注意,当使用沉浸式的时候,注意标题栏的位置,需要避让状态栏。
鸿蒙开发:自定义一个简单的标题栏
|
2天前
|
API
鸿蒙开发:切换至基于rcp的网络请求
本文的内容主要是把之前基于http封装的库,修改为当前的Remote Communication Kit(远场通信服务),无非就是通信的方式变了,其他都大差不差。
鸿蒙开发:切换至基于rcp的网络请求
|
7天前
|
UED
鸿蒙next版开发:相机开发-适配不同折叠状态的摄像头变更(ArkTS)
在HarmonyOS 5.0中,ArkTS提供了强大的相机开发能力,特别是针对折叠屏设备的摄像头适配。本文详细介绍了如何在ArkTS中检测和适配不同折叠状态下的摄像头变更,确保相机应用在不同设备状态下的稳定性和用户体验。通过代码示例展示了具体的实现步骤。
34 8
|
7天前
|
API 内存技术
鸿蒙next版开发:相机开发-拍照(ArkTS)
在HarmonyOS 5.0中,ArkTS提供了一套完整的API来管理相机功能,特别是拍照功能。本文详细介绍如何在ArkTS中实现拍照功能,包括导入接口、创建会话、配置会话、触发拍照及监听拍照输出流状态,并提供代码示例进行详细解读。通过本文,你将掌握如何在HarmonyOS 5.0中使用ArkTS实现高效的拍照功能。
27 7