隐藏的 Stacklayout 以 xamarin 形式占用空间

Man*_*mar 6 xaml xamarin.forms

我正在使用 Xamrin 在 Xaml 中创建一个表单,其中包含我在其中隐藏堆栈布局的绝对布局。但是隐藏的堆栈布局下方还有一个堆栈布局,但隐藏的堆栈布局占用了空间。

我想要做什么。当我确实隐藏了一个堆栈布局时,另一个堆栈布局应该取代隐藏的堆栈布局。

Man*_*mar 6

感谢您的帮助和支持。

我已经解决了这个问题:

我 在这个链接中点击了这个链接 https://forums.xamarin.com/discussion/83632/hiding-and-showing-stacklayout他们说使用网格并使行高自动,它会自动调整布局的额外空间。

<Grid   VerticalOptions="Fill">    
 <Grid.RowDefinitions>
            <RowDefinition Height="100"/>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions> <StackLayout Grid.Row="1" Spacing="20"><StackLayout   Margin="10,0">  
        <Label Text="lable 1" VerticalOptions="Center" FontSize="Small" />
        <Label Text="lable 2" VerticalOptions="Center" FontSize="Small" />
</StackLayout>
<StackLayout  IsVisible="{Binding IsStudent}" Margin="10,0">  
    <Label Text="lable3" VerticalOptions="Center" FontSize="Small" />
        <Label Text="lable 4" VerticalOptions="Center" FontSize="Small" />
    <Label Text="lable 5" VerticalOptions="Center" FontSize="Small" />
        <Label Text="lable 6" VerticalOptions="Center" FontSize="Small" />
</StackLayout>  </StackLayout>  <StackLayout Grid.Row="2" Spacing="20" >
<local:Button x:Name="btnSave" Text="Submit" VerticalOptions="End" HorizontalOptions="FillAndExpand"  IsVisible="{Binding IsBusy, Converter={x:Static local:InverseBoolConverter.Instance}}"   AutomationId="saveButton" /></StackLayout></Grid>
Run Code Online (Sandbox Code Playgroud)


phi*_*ady 5

不需要网格。设置 IsVisible 和 HeightRequest 属性。

 MyStackLayout.IsVisible = false;
 MyStackLayout.HeightRequest = 0; // trigger recalc of space layout. 
Run Code Online (Sandbox Code Playgroud)

heightrequest 的变化会触发所需的重新计算。