Ich versuche eine Art kollabierbarer StackLayout zu implementieren. Mit jedem Klick auf den Button wird das Stacklayout erweitert oder reduziert, um weitere Details anzuzeigen/auszublenden.Xamarin Forms Collapsable StackLayout
konnte ich mehr/weniger dies mit dem folgenden Code erreichen, aber es sieht nicht richtig aus, und die Wirkung ist nicht groß, weil es sofort wächst und ich bin Anwendung die Wirkung anderes Element.
Haben Sie irgendwelche Vorschläge, dies zu tun, verwende ich Xamarin Forms?
XAML
<?xml version="1.0" encoding="utf-8" ?>
<StackLayout xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Sample.MyStackLayout" >
<StackLayout x:Name="TopLayout">
<StackLayout Orientation="Horizontal">
<Label Text="some text" VerticalOptions="Center" HorizontalOptions="StartAndExpand" />
<Label Text="123" VerticalOptions="Center" HorizontalOptions="End" FontSize="Large" />
</StackLayout>
<BoxView Color="Black" HeightRequest="1" />
<StackLayout Orientation="Horizontal">
<Label Text="some text" VerticalOptions="Center" HorizontalOptions="StartAndExpand" />
<Label Text="123" VerticalOptions="Center" HorizontalOptions="End" FontSize="Large" />
</StackLayout>
<StackLayout Orientation="Horizontal">
<Label Text="some text" VerticalOptions="Center" HorizontalOptions="StartAndExpand" />
<Label Text="123" VerticalOptions="Center" HorizontalOptions="End" FontSize="Large" />
</StackLayout>
<Button x:Name="btn" Text="Button" Clicked="btnClicked" />
</StackLayout>
<StackLayout x:Name="MoreDetails" IsVisible="False">
<Label Text="some text 1"></Label>
<Label Text="some text 2"></Label>
<Label Text="some text 3"></Label>
<Label Text="some text 4"></Label>
<Label Text="some text 5"></Label>
<Label Text="some text 6"></Label>
<Label Text="some text 7"></Label>
<Label Text="some text 8"></Label>
</StackLayout>
</StackLayout>
-Code
public AccountInfo()
{
InitializeComponent();
}
bool isExpanded = false;
protected async void btnClicked(object sender, EventArgs e)
{
if (isExpanded)
{
await MoreDetails.FadeTo(0);
MoreDetails.IsVisible = !isExpanded;
}
else
{
MoreDetails.IsVisible = !isExpanded;
await MoreDetails.FadeTo(1);
}
isExpanded = !isExpanded;
}
Sorry, ich könnte etwas falsch zu machen, aber ich klebte Code durch Hinzufügen Dinge wie Animationen erweitern und hat nicht funktioniert wie erwartet. Mein ideia ist entfernen (verstecken) das untere stacklayout. Btw Easing.None existiert nicht in meiner Version von Xamarin Formen, also verwende ich Linear. Ich habe auch alle Hauptinhalte in ein StackLayout eingepackt, also habe ich [StackLayout> StackLayout TopLayout UND StackLayout ModerDetails] – user1845593
Ich habe meine Antwort bearbeitet, probiere diese – Greensy
Danke für die Hilfe, aber kompiliert nicht, TranslateTo nimmt diese params: double x, doppelte y, Uint Länge = 250, Lockerung Easing = null. Übrigens fehlt Ihnen "()" nach ShowMore und ShowLess – user1845593