面试题答案
一键面试实现思路
- 使用
Container
作为根组件,将其设置为水平布局,以便图片在左,文本信息在右。 - 对于图片,可以使用
Image
组件,并设置合适的width
和height
以适应不同屏幕尺寸,例如使用BoxFit
来控制图片的缩放方式。 - 对于标题和描述信息,使用
Column
组件将它们垂直排列,同时设置合适的字体大小和间距,也可以使用Flexible
组件来确保文本在不同屏幕尺寸下合理布局。
核心代码(以 Flutter 为例)
import 'package:flutter/material.dart';
class CustomListItem extends StatelessWidget {
final String imageUrl;
final String title;
final String description;
const CustomListItem({
Key? key,
required this.imageUrl,
required this.title,
required this.description,
}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container(
padding: const EdgeInsets.all(16.0),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Image.network(
imageUrl,
width: 60,
height: 60,
fit: BoxFit.cover,
),
const SizedBox(width: 16),
Flexible(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
title,
style: const TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
),
const SizedBox(height: 8),
Text(
description,
style: const TextStyle(fontSize: 14),
),
],
),
),
],
),
);
}
}
使用方式:
CustomListItem(
imageUrl: 'https://example.com/image.jpg',
title: '示例标题',
description: '这是一段示例描述信息',
)