Estou tentando adicionar alguns logotipos a uma linha em um widget Flutter; o código relevante está abaixo:
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Container(
decoration: BoxDecoration(
border: Border.all(color: FbColors.grey),
borderRadius: BorderRadius.circular(300),
),
child: Image(
width: FbSizes.iconMd,
height: FbSizes.iconMd,
image: AssetImage(dark ? FbImages.googleDark : FbImages.googleLight),
),
),
const SizedBox(width: FbSizes.spaceBtwnItems),
Container(
decoration: BoxDecoration(
border: Border.all(color: FbColors.grey),
borderRadius: BorderRadius.circular(100),
),
child: Image(
width: FbSizes.iconMd,
height: FbSizes.iconMd,
image: AssetImage(dark ? FbImages.appleDark : FbImages.appleLight),
),
),
],
)
Observe que o primeiro Container
tem uma BorderRadius.circular(300)
chamada, e o segundo tem uma BorderRadius.circular(100)
chamada - mas ambos têm o mesmo tamanho na tela, e nenhum deles tem o tamanho especificado (eles terão o mesmo tamanho na visualização final - apenas alterei os tamanhos no código para mostrar que eles não estão respondendo).
Não consigo entender por que não consigo redimensioná-los. Alguém tem alguma ideia do que estou fazendo errado?
As propriedades
Image
do widget devem controlar o tamanho da imagem, mas se o pai ou outras restrições estiverem interferindo, a imagem pode não aparecer como esperado.width
height
Container
Então, em vez de dar o tamanho à imagem, dê-o ao pai
Container
e garanta que elaContainer
tenha um tamanho quadrado .Em vez de dar a um valor
Container
fixo para torná-lo circular, passe para o do , você pode usar a propriedade no para controlar o ajuste da imagem noBorderRadius
BorderRadius.circular(300)
shape: BoxShape.circle,
decoration
Container
fit
AssetImage
fit: BoxFit.contain
Container
Melhor solução:
Você pode usar o
CircleAvatar
Widget e controlar o tamanho da imagem alterando o valor daradius
propriedade