Sim, para garantir que os dois containers não tenham a mesma cor aleatória, você pode adicionar um if
para verificar se as cores aleatórias dos dois containers são iguais. Se forem iguais, você pode gerar uma nova cor aleatória para o segundo container.
Aqui está um exemplo de como fazer isso:
import 'dart:math';
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Containers Aleatórios'),
),
body: ContainerScreen(),
),
);
}
}
class ContainerScreen extends StatelessWidget {
final List<Color> coresDisponiveis = [
Colors.red,
Colors.blue,
Colors.green,
Colors.yellow,
Colors.purple,
Colors.orange,
Colors.teal,
Colors.pink,
];
final Random random = Random();
Color gerarCorAleatoria() {
return coresDisponiveis[random.nextInt(coresDisponiveis.length)];
}
@override
Widget build(BuildContext context) {
Color primeiraCor = gerarCorAleatoria();
Color segundaCor;
do {
segundaCor = gerarCorAleatoria();
} while (segundaCor == primeiraCor);
return Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Container(
width: 50,
height: 50,
color: primeiraCor,
),
Container(
width: 50,
height: 50,
color: segundaCor,
),
],
);
}
}
Neste exemplo, a função gerarCorAleatoria
foi criada para retornar uma cor aleatória da lista coresDisponiveis
. Em seguida, criamos uma cor aleatória para o primeiro container e, em seguida, um loop do-while
é usado para gerar uma nova cor aleatória para o segundo container até que seja diferente da cor do primeiro container. Dessa forma, garantimos que os dois containers sempre tenham cores diferentes.