#flutter #flutter-layout
Вопрос:
Приложение работало просто отлично, пока я не использовал listview.builder и не добавил список элементов (упомянутых в datalist) Я не могу понять, что именно вызывает ошибку, так как в самой среде IDE нет ошибок. Может ли кто-нибудь объяснить, что здесь происходит, и, возможно, дать мне решение?
Заранее спасибо!
Финансовая Страница:
import 'package:flutter/material.dart';
class FinancePage extends StatefulWidget {
const FinancePage({Key? key}) : super(key: key);
@override
_FinancePageState createState() => _FinancePageState();
}
class _FinancePageState extends State<FinancePage> {
final List<DataTiles> dataList = [
DataTiles(title: "Mobile Home Dealers", subtitle: "Last payment 17 May",color: Colors.deepPurpleAccent.shade50),
DataTiles(title: "Taxicabs and Limousines", subtitle: "Last payment 26 May",color: Colors.lightBlueAccent),
DataTiles(title: "Miscellaneous Apparel and Accessory Shops", subtitle: "Last payment 06 April",color: Colors.redAccent),
DataTiles(title: "Electric, Gas, Sanitary and Water utilities", subtitle: "Last payment 01 May",color: Colors.deepPurpleAccent.shade50),
DataTiles(title: "Misc. General Merchandise", subtitle: "Last payment 01 March",color: Colors.lightBlueAccent),
];
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.deepPurple.shade800,
body: Column(
children: [
const SizedBox(
height: 100,
),
Padding(
padding: const EdgeInsets.all(10),
child: Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(5),
),
elevation: 3,
child: ListTile(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(5),
),
tileColor: Colors.deepPurpleAccent,
leading: const Text(
"Card balance",
style: TextStyle(color: Colors.white),
),
trailing: FittedBox(
fit: BoxFit.fill,
child: Row(
children: const [
Text(
"0₹",
style: TextStyle(color: Colors.white),
),
Icon(
Icons.arrow_forward_ios,
color: Colors.white,
size: 10,
)
],
),
)),
)),
const Text("PAYMENT CATEGORIES",
style: TextStyle(
color: Colors.grey,
)),
SizedBox(
height: 200,
child: ListView.builder(
scrollDirection: Axis.horizontal,
itemCount: dataList.length,
itemBuilder: (context, index) {
return SizedBox(
width: 170,
child: Card(
child: Column(
children: [
Text(dataList[index].title,
style: const TextStyle(
fontSize: 20,
),
),
Text(dataList[index].subtitle,),
],
),
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10),
),
color: dataList[index].color,
),
);
}),
),
],
),
);
}
}
class DataTiles {
DataTiles({required this.title, required this.subtitle, required this.color});
final String title;
final String subtitle;
final Color color;
}
главная.дротик
import 'package:flutter/material.dart';
import 'finance_page.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return const MaterialApp(
title: 'Flutter Demo',
home: FinancePage(),
);
}
}
Ответ №1:
Строки, вызывающие ошибки, являются
DataTiles(title: "Mobile Home Dealers", subtitle: "Last payment 17 May",color: Colors.deepPurpleAccent.shade50),
DataTiles(title: "Electric, Gas, Sanitary and Water utilities", subtitle: "Last payment 01 May",color: Colors.deepPurpleAccent.shade50),
Удалите shade50
или измените цвет на другой, без shade
этого это будет работать. Некоторые цвета не имеют значения Shade50
, например, deepPurpleAccent и deepPurpleAccent. shade100
будет работать на них. Проверьте документацию перед использованием shade
s
Комментарии:
1. Большое вам спасибо! shade50 показал мне как вариант в IDE, поэтому я подумал, что он, должно быть, принимает его.