Separadores en Xamarin.Formas
xamarin.forms (7)
@ Jason Además de la respuesta de Jason, debe establecer VerticalOptions para poder usar HeightRequest y establecer HorizontalOptions para poder usar WidthRequest. los valores predeterminados son de relleno, por eso no responde. Ejemplo de salida
<BoxView VerticalOptions="Center"
HorizontalOptions="Center"
HeightRequest="1"
WidthRequest="50"
Color="#5b5d68"></BoxView>
Me gustaría usar líneas de separación horizontales en una forma. Por lo que descubrí, Xamarin.Forms no proporciona uno.
¿Podría alguien proporcionar un fragmento de separadores?
ACTUALIZACIÓN 1
Según la propuesta de Jason, esto se ve bien:
// draws a separator line and space of 5 above and below the separator
new BoxView() { Color = Color.White, HeightRequest = 5 },
new BoxView() { Color = Color.Gray, HeightRequest = 1, Opacity = 0.5 },
new BoxView() { Color = Color.White, HeightRequest = 5 },
Representa la siguiente línea de separación:
Agregar una pila de 1pixel me funciona (en una pila vertical):
// Add a black line
MyVerticalStackLayout.Children.Add(
new StackLayout {
HeightRequest = 1,
BackgroundColor = Color.Black,
HorizontalOptions = LayoutOptions.FillAndExpand
}
);
En realidad, hay un método para mostrar los separadores en Xamarin.Forms:
myListView.SeparatorVisibility = Xamarin.Forms.SeparatorVisibility.Default;
myListView.SeparatorColor = Color.FromHex("C8C7CC");
Y para esconder:
myListView.SeparatorVisibility = Xamarin.Forms.SeparatorVisibility.None;
¡Espero eso ayude!
Otra forma de implementar BoxView en un StackLayout usando Xaml.
Esto debería hacerlo
<StackLayout Orientation="Vertical">
<Label HorizontalTextAlignment="Center" Text="Header" />
<BoxView HeightRequest="1" BackgroundColor="Black" HorizontalOptions="FillAndExpand" />
</StackLayout>
Puede intentar usar BoxView
// sl is a StackLayout
sl.Children.Add(new BoxView() { Color = Color.Black, WidthRequest = 100, HeightRequest = 2 });
aunque en mi prueba, la solicitud de ancho no se sigue. Esto puede ser un error u otras configuraciones pueden estar interfiriendo.
También puede usar el paquete NuGet Xamarin.Forms.Lab, que contiene tantos controles personalizados que ayudan durante la codificación. También en este paquete hay un nombre de control con separador que puede ayudarlo.
Puede descargar el paquete desde este enlace https://www.nuget.org/packages/Xamarin.Forms.Labs/1.2.0-pre3
puedes lograr esto a través de StackLayout. Defina un StackLayout que tenga una altura de 1 px y un ancho de 320 px (tamaño de la pantalla del iPhone), luego agréguelo al diseño principal para que lo ayude.
StackLayout myLayout = new StackLayout();
myLayout.HeightRequest=1;
myLayout.WidthRequest=320;
myLayout.BackgroundColor= Color.Black;
parentLayout.Children.Add("myLayout");