HELP!! Please i'm getting this error
color == null || decoration == null "Cannot provide both a color and a decoration\nTo provide both, use "decoration: BoxDecoration(color: color)"." The relevant error-causing widget was: AppIconText AppIconText:file:///Users/jessezephyr/projects/flutter/ticketapp/lib/screens/search_screen.dart:67:17
This is the code
`flutter`
{
```
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:gap/gap.dart';
import 'package:ticketapp/utils/app_layout.dart';
import '../utils/app_styles.dart';
class AppIconText extends StatelessWidget {
final IconData icon;
final String text;
const AppIconText({super.key, required this.icon, required this.text});
@override
Widget build(BuildContext context) {
return Container(
padding: EdgeInsets.symmetric(
vertical: AppLayout.getWidth(12),
horizontal: AppLayout.getHeight(12)),
color: Colors.white,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(AppLayout.getWidth(10)),
),
child: Row(
children: [
Icon(
icon,
color: const Color(0XFF8FC20F),
),
Gap(AppLayout.getWidth(10)),
Text(
text,
style: Styles.textStyle,
)
],
),
);
}
}
}
{
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:gap/gap.dart';
import 'package:ticketapp/utils/app_layout.dart';
import 'package:ticketapp/utils/app_styles.dart';
import 'package:ticketapp/widgets/icon_text_widget.dart';
class SearchScreen extends StatelessWidget {
const SearchScreen({super.key});
@override
Widget build(BuildContext context) {
final size = AppLayout.getSize(context);
return Scaffold(
backgroundColor: Styles.bgColor,
body: ListView(
padding: EdgeInsets.symmetric(
horizontal: AppLayout.getWidth(20),
vertical: AppLayout.getHeight(20)),
children: [
Gap(AppLayout.getHeight(40)),
Text(
'What are you \nlooking for?',
style:
Styles.headLineStyle.copyWith(fontSize: AppLayout.getWidth(35)),
),
Gap(AppLayout.getHeight(20)),
FittedBox(
child: Container(
padding: const EdgeInsets.all(3.5),
child: Row(
children: [
/*
Airline TICKETS
*/
Container(
width: size.width * .44,
padding:
EdgeInsets.symmetric(vertical: AppLayout.getHeight(7)),
decoration: BoxDecoration(
borderRadius: BorderRadius.horizontal(
left: Radius.circular(AppLayout.getHeight(50))),
color: Colors.white,
),
child: Center(child: Text('Airline tickets')),
),
Container(
width: size.width * .44,
padding:
EdgeInsets.symmetric(vertical: AppLayout.getHeight(7)),
decoration: BoxDecoration(
borderRadius: BorderRadius.horizontal(
right: Radius.circular(AppLayout.getHeight(50))),
color: Colors.transparent,
),
child: Center(child: Text('Hotels ')),
),
],
),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(AppLayout.getHeight(50)),
color: const Color(0xFFF4F6FD),
),
),
),
Gap(AppLayout.getHeight(25)),
const AppIconText(
icon: Icons.flight_takeoff_rounded, text: 'Departure'),
Gap(AppLayout.getHeight(15)),
const AppIconText(icon: Icons.flight_land_rounded, text: 'Arrival'),
],
),
);
}
}
```
}
It's supposed to display an icon and text
It's supposed to display a text and an icon but it's not working
CodePudding user response:
In AppIconText widget, the Container widget being returned has both color and decoration defined. This is not allowed as stated in the error message. A container should either have a color or decoration or none. You can not have both color and decoration on a container. This is because a box decoration itself has a color property. If you are using a decoration, you should use this property to assign color to the Container.
Container(
padding: EdgeInsets.symmetric(
vertical: AppLayout.getWidth(12),
horizontal: AppLayout.getHeight(12)),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(AppLayout.getWidth(10)),
color: Colors.white,
),
......
);
Just move the color property inside the BoxDecoration and it will work.