접을 수있는 StackLayout을 구현하려고합니다. 사용자가 버튼을 클릭 할 때마다 stacklayout을 확장하거나 축소하여 자세한 내용을 표시하거나 숨 깁니다. Xamarin Forms 접을 수있는 StackLayout
나는/덜이 아래의 코드를하지만, 잘 보이지 않는 더 많은 것을 달성 할 수 있었고 즉시 성장하고 나는 효과를 적용하고 있습니다 때문에 효과는 크지 않다 다른 요소.xamarin 양식을 사용하고 있는데 어떤 제안이 있습니까?
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>
코드
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;
}
내가 뭔가 잘못하고 있습니다,하지만 난 당신의 코드를 붙여 넣어 작동하지 않았다 죄송합니다 예상대로 내 이데아는 하단 스택 레이아웃을 제거 (숨기기)합니다. Btw Easing.None은 Xamarin 양식의 제 버전에는 존재하지 않으므로 Linear를 사용하고 있습니다. StackLayout의 모든 주요 내용을 래핑 했으므로 [StackLayout> StackLayout TopLayout 및 StackLayout ModerDetails] – user1845593
내 대답을 편집했습니다. 이것을 시도하십시오 – Greensy
도움 주셔서 감사하지만 컴파일하지 않습니다, TranslateTo이 매개 변수를 취합니다 : double x, double y, uint 길이 = 250, 여유 공간 완화 = null. Btw ShowMore 및 ShowLess 이후에 "()"이 누락되었습니다. – user1845593