Neste artigo vou apresentar os conceitos sobre o FlexLayout que foi introduzido na versão 3.0 do Xamarin Forms. |
Continuando a terceira parte do artigo vamos continuar abordando os recursos do FlexLayout.
Veremos agora como exibir um catálogo de itens usando o FlexLayout inseridos dentro de um Frame que estará inserido em um ScrollView.
Vamos definir neste exemplo um arquivo de recursos(Resources) onde iremos definir algumas configurações das views (Label, Image e Button) usadas na página.
Neste projeto as imagens exibidas foram colocadas na pasta Resources/drawable do projeto Android.
Recursos Usados
Usando o projeto Xamarin.Forms
Vamos usar o projeto XF_FlexLayout1 criado no artigo anterior e incluir uma nova Content Page com o nome FlexLayoutPage3.xaml. Para poder exibir esta página basta alterar o código do arquivo App.xaml.cs conforme abaixo:
....
public App ()
{
InitializeComponent();
MainPage = new FlexLayoutPage3();
}
...
|
Exibindo itens de catálogo com o FlexLayout
Vamos iniciar definindo as configurações que iremos aplicar em cada view usando um Resources:
<ContentPage.Resources>
<Style TargetType="Frame">
<Setter Property="BackgroundColor" Value="LightYellow" />
<Setter Property="BorderColor" Value="Blue" />
<Setter Property="Margin" Value="10" />
<Setter Property="CornerRadius" Value="15" />
</Style>
<Style TargetType="Label">
<Setter Property="Margin" Value="0, 4" />
</Style>
<Style x:Key="headerLabel" TargetType="Label">
<Setter Property="Margin" Value="0, 8" />
<Setter Property="FontSize" Value="Large" />
<Setter Property="TextColor" Value="Blue" />
</Style>
<Style TargetType="Image">
<Setter Property="FlexLayout.Order" Value="-1" />
<Setter Property="FlexLayout.AlignSelf" Value="Center" />
</Style>
<Style TargetType="Button">
<Setter Property="Text" Value="Aprenda Mais" />
<Setter Property="FontSize" Value="Large" />
<Setter Property="TextColor" Value="White" />
<Setter Property="BackgroundColor" Value="Green" />
<Setter Property="BorderRadius" Value="20" />
</Style>
</ContentPage.Resources>
|
O estilo
implícito para a view Image inclui as configurações de duas propriedades
vinculáveis anexadas de Flexlayout:
<Style TargetType="Image">
<Setter Property="FlexLayout.Order" Value="-1"
/>
<Setter Property="FlexLayout.AlignSelf" Value="Center" />
</Style>
A
configuração de Order com valor igual a –1 faz com que a imagem
seja exibida primeiro em cada uma dos FlexLayout aninhados, independentemente de
sua posição dentro da coleção de filhos.
A propriedade AlignSelf igual a Center faz com que a imagem seja
centralizada dentro de FlexLayout. Isso substitui a configuração da propriedade
AlignItems que tem um valor padrão de Stretch, o que significa que
as views Label e Button filhas são ampliadas para a
largura total do FlexLayout.
A seguir o código que cria exibe 3 paneis roláveis com texto e imagens dos macacos:
<ScrollView Orientation="Both">
<FlexLayout>
<Frame WidthRequest="300" HeightRequest="480">
<FlexLayout Direction="Column">
<Label Text="Macaco Sentado"
Style="{StaticResource headerLabel}" />
<Label Text="Este macaco esta descontraído e relaxado, e gosta de ver o mundo passar." />
<Label Text=" • Não faz muito barulho" />
<Label Text=" • Sorri misteriosamente com frequência" />
<Label Text=" • Dorme sentado" />
<Image Source="SeatedMonkey.jpg"
WidthRequest="180"
HeightRequest="180" />
<Label FlexLayout.Grow="1" />
<Button />
</FlexLayout>
</Frame>
<Frame WidthRequest="300" HeightRequest="480">
<FlexLayout Direction="Column">
<Label Text="Banana de Macaco"
Style="{StaticResource headerLabel}" />
<Label Text="Observe este macaco comer esta banana gigante." />
<Label Text=" • Mais divertido que um barril de macacos" />
<Label Text=" • A banana não esta inclusa" />
<Image Source="Banana.jpg"
WidthRequest="240"
HeightRequest="180" />
<Label FlexLayout.Grow="1" />
<Button />
</FlexLayout>
</Frame>
<Frame WidthRequest="300" HeightRequest="480">
<FlexLayout Direction="Column">
<Label Text="Macaco de Face"
Style="{StaticResource headerLabel}" />
<Label Text="Este macaco reage apropriadamente a afirmações e ações ridículas." />
<Label Text=" • Cínico mas não inamistoso" />
<Label Text=" • Sete variedade de caretas" />
<Label Text=" • Não ria de suas piadas" />
<Image Source="FacePalm.jpg"
WidthRequest="180"
HeightRequest="180" />
<Label FlexLayout.Grow="1" />
<Button />
</FlexLayout>
</Frame>
</FlexLayout>
</ScrollView>
|
Temos um
leaiute FlexLayout definido dentro de um
ScrollView. A seguir temos 3
Frames cada um contendo um FlexLayout que exibem a imagem e o texto para cada
macaco.
Cada macaco esta em um FlexLayout em um Frame que possui uma
altura e largura explicita e que também é filho de um FlexLayout.
Executando o projeto e rolando verticalmente a página teremos:
Pegue o código aqui: XF_FlexLayout4.zip
"E também todos os que
piamente querem viver em Cristo Jesus padecerão perseguições.
Mas os homens maus e enganadores irão de mal para pior, enganando e sendo
enganados."
2 Timóteo 3:12,13
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Xamarin Android - Apresentando o controle ProgressBar - Macoratti.net
Xamarin Android - Usando o serviço de Alarme - Macoratti.net
Xamarin.Forms - Usando a view ActivityIndicator - Macoratti.net
https://docs.microsoft.com/pt-br/xamarin/xamarin-forms/user-interface/layouts/flex-layout