Um pacote Flutter que fornece bandeiras de seleções e países de todo o mundo, desenhadas usando CustomPainter para garantir performance e qualidade vetorial em qualquer tamanho.
- ✅ 195 países disponíveis organizados por continente
- 🎨 Bandeiras vetoriais desenhadas com CustomPainter (sem imagens)
- 📐 Tamanhos personalizáveis sem perda de qualidade
- 🔵 Suporte para bandeiras arredondadas (circulares)
- 🌐 Códigos internacionais (ISO e FIFA)
- ⚡ Performance otimizada sem uso de assets de imagem
- 🎯 Fácil integração em qualquer projeto Flutter
Adicione o pacote ao seu pubspec.yaml:
dependencies:
team_flag: ^0.0.1Ou instale via terminal:
flutter pub add team_flagimport 'package:flutter/material.dart';
import 'package:team_flag/team_flag.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: TeamFlag(
type: TeamFlagType.brazil,
width: 200,
),
),
);
}
}TeamFlag(
type: TeamFlagType.france,
width: 100,
isRounded: true, // Exibe a bandeira em formato circular
)ListView.builder(
itemCount: TeamFlagType.values.length,
itemBuilder: (context, index) {
final flag = TeamFlagType.values[index];
return ListTile(
leading: TeamFlag(
type: flag,
width: 60,
),
title: Text(flag.name),
subtitle: Text('${flag.code} - ${flag.teamCode}'),
);
},
)final country = TeamFlagType.brazil;
print(country.name); // "Brazil"
print(country.code); // "BR" (ISO 3166-1 alpha-2)
print(country.teamCode); // "BRA" (Código FIFA de 3 letras)O pacote inclui 195 países organizados por continente:
Albania, Andorra, Armênia, Áustria, Azerbaijão, Belarus, Bélgica, Bósnia e Herzegovina, Bulgária, Croácia, Chipre, Tchéquia, Dinamarca, Inglaterra, Estônia, Finlândia, França, Geórgia, Alemanha, Grécia, Hungria, Islândia, Irlanda, Itália, Kosovo, Letônia, Lituânia, Luxemburgo, Malta, Moldávia, Montenegro, Holanda, Macedônia do Norte, Noruega, Polônia, Portugal, Romênia, Rússia, San Marino, Escócia, Sérvia, Eslováquia, Eslovênia, Espanha, Suécia, Suíça, Turquia, Ucrânia, País de Gales
Argentina, Bolívia, Brasil, Canadá, Chile, Colômbia, Costa Rica, Cuba, República Dominicana, Equador, El Salvador, Guatemala, Guiana, Haiti, Honduras, Jamaica, México, Nicarágua, Panamá, Paraguai, Peru, Suriname, Trinidad e Tobago, Estados Unidos, Uruguai, Venezuela
Argélia, Angola, Benin, Botsuana, Burkina Faso, Burundi, Camarões, Cabo Verde, República Centro-Africana, Chade, Comores, Congo, RD Congo, Costa do Marfim, Djibuti, Egito, Guiné Equatorial, Eritreia, Essuatíni, Etiópia, Gabão, Gâmbia, Gana, Guiné, Guiné-Bissau, Quênia, Lesoto, Libéria, Líbia, Madagascar, Malawi, Mali, Mauritânia, Maurício, Marrocos, Moçambique, Namíbia, Níger, Nigéria, Ruanda, São Tomé e Príncipe, Senegal, Seychelles, Serra Leoa, Somália, África do Sul, Sudão do Sul, Sudão, Tanzânia, Togo, Tunísia, Uganda, Zâmbia, Zimbábue
Afeganistão, Bahrein, Bangladesh, Butão, Brunei, Camboja, China, Hong Kong, Índia, Indonésia, Irã, Iraque, Israel, Japão, Jordânia, Cazaquistão, Kuwait, Quirguistão, Laos, Líbano, Malásia, Maldivas, Mongólia, Myanmar, Nepal, Coreia do Norte, Omã, Paquistão, Palestina, Filipinas, Qatar, Arábia Saudita, Singapura, Coreia do Sul, Sri Lanka, Síria, Taiwan, Tajiquistão, Tailândia, Timor-Leste, Turcomenistão, Emirados Árabes Unidos, Uzbequistão, Vietnã, Iêmen
Austrália, Fiji, Nova Zelândia, Papua Nova Guiné, Samoa, Ilhas Salomão, Tonga, Vanuatu
Cada país no TeamFlagType possui três propriedades:
enum TeamFlagType {
brazil('Brazil', 'BR', 'BRA'),
// name: Nome do país em inglês
// code: Código ISO 3166-1 alpha-2 (2 letras)
// teamCode: Código FIFA de 3 letras (usado em competições esportivas)
}Atualmente, as seguintes bandeiras estão implementadas com CustomPainter:
- ✅ França
Nota: As demais bandeiras exibirão um placeholder até serem implementadas. Contribuições são bem-vindas!
| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
type |
TeamFlagType |
Sim | - | O país/seleção a ser exibido |
width |
double |
Sim | - | Largura da bandeira |
isRounded |
bool |
Não | false |
Se true, exibe a bandeira em formato circular |
Proporções: As bandeiras retangulares seguem a proporção 3:2 (altura = 2/3 da largura). Bandeiras circulares têm altura igual à largura.
Contribuições são muito bem-vindas! Especialmente para:
- Implementar novas bandeiras com CustomPainter
- Corrigir bandeiras existentes
- Melhorar a documentação
- Reportar bugs
- Crie um novo arquivo em
lib/flags/[pais]/[pais]_flag_painter.dart - Implemente a classe que estende
CustomPainter - Adicione o caso no switch em
TeamFlagType.getPainter() - Teste sua implementação
- Envie um Pull Request
Exemplo de estrutura:
class BrazilFlagPainter extends CustomPainter {
@override
void paint(Canvas canvas, Size size) {
// Implementação da bandeira
}
@override
bool shouldRepaint(covariant CustomPainter oldDelegate) => false;
}Veja o arquivo CHANGELOG.md para detalhes sobre as mudanças em cada versão.
Este projeto está licenciado sob a licença BSD 3-Clause - veja o arquivo LICENSE para detalhes.
Desenvolvido com ❤️ para a comunidade Flutter
⭐ Se este pacote foi útil, considere dar uma estrela no repositório!