[英]How to hide StackLayout in Xamarin Forms
我試圖隱藏StackLayout
稱為InfoStackLayout
我的配置下載后,顯示信息標簽5S,但躲在后Infostack
在代碼中,我的Grid
在ContentPage
不刷新視圖和葉空的空間。 ( InfoStackLayout
是不可見的,但仍保留空間)更糟糕的是, ButtonsStack
中的按鈕無法正確響應單擊事件。 鎖定和解鎖手機后,一切正常。
<Grid x:Name="RootGrid" VerticalOptions="Fill" RowSpacing="0" ColumnSpacing="0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackLayout x:Name="InfoStackLayout" Grid.Row="0" Orientation="Horizontal">
<Label x:Name="InfoLabel" TextColor="White" HorizontalOptions="StartAndExpand" Font="18" />
<Image x:Name="GetConfig" HorizontalOptions="EndAndExpand" Source="loading.png" HeightRequest="32" WidthRequest="32">
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="ReloadConfig_Tapped" NumberOfTapsRequired="1"/>
</Image.GestureRecognizers>
</Image>
</StackLayout>
<StackLayout x:Name="ButtonsStack" Grid.Row="1">
</StackLayout>
</Grid>
InfoLabel.Text = "Download Config";
Device.StartTimer(TimeSpan.FromSeconds(5), () =>
{
Task.Factory.StartNew(async () =>
{
await InfoStackLayout.FadeTo(0);
InfoStackLayout.IsVisible = false;
InfoStackLayout.HeightRequest = 0;
});
return false;
});
@Shan回答是最好的解決方案。 只需用 Device.BeginInvokeOnMainThread 替換 Task.Factory.StartNew 即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.