C# 滚动视图的大小不变
我在页面的网格中有两行。第一个显示一些信息。在第二行,我有另一个两行的网格。第一个是stackLayout并显示圆环图,第二个是带有滚动视图和按钮的stackLayout。单击按钮后,滚动视图将在y轴上平移以显示历史项目。但是,滚动视图的高度没有改变。有人知道为什么吗 xaml文件C# 滚动视图的大小不变,c#,xamarin,xamarin.forms,scrollview,C#,Xamarin,Xamarin.forms,Scrollview,我在页面的网格中有两行。第一个显示一些信息。在第二行,我有另一个两行的网格。第一个是stackLayout并显示圆环图,第二个是带有滚动视图和按钮的stackLayout。单击按钮后,滚动视图将在y轴上平移以显示历史项目。但是,滚动视图的高度没有改变。有人知道为什么吗 xaml文件 <StackLayout Grid.Row="1"> <Grid> <Grid.RowDefinitions> <RowDefini
<StackLayout Grid.Row="1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="200"/>
<RowDefinition Height="200"/>
</Grid.RowDefinitions>
<StackLayout Grid.Row="0">
<forms:ChartView x:Name="PieChart" HeightRequest="300"/>
</StackLayout>
<StackLayout x:Name="HistoryScroll" Grid.Row="1" TranslationY="120">
<StackLayout Padding="0" Margin="0">
<Frame x:Name="HistoryBtn" Padding="0" Margin="5, 5, 0, 5" CornerRadius="5"
HorizontalOptions="EndAndExpand" VerticalOptions="EndAndExpand"
BackgroundColor="#000058">
<Button Text="History" TextColor="#fff"
BackgroundColor="Transparent" HorizontalOptions="EndAndExpand"
VerticalOptions="EndAndExpand"
Margin="0" Padding="0" Clicked="HistoryBtnHandler"/>
</Frame>
<Frame BackgroundColor="LightGray" BorderColor="Transparent" Padding="0"
HeightRequest="10" Margin="0" HasShadow="False"/>
</StackLayout>
<ScrollView HeightRequest="300" IsEnabled="True">
<StackLayout HeightRequest="300">
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
</StackLayout>
</ScrollView>
</StackLayout>
</Grid>
</StackLayout>
由于您仅为网格行=1分配了200DP
ScrollView
最多只能有200个显示像素。如果需要占用剩余空间,请将高度设置为*
如果您想正确显示滚动视图
,首先,您应该像Prateek所说的那样设置行定义高度=“*”
或设置
之后,我发现您的滚动视图无法滚动,如果您在滚动视图
中设置了堆栈布局
的特定高度,则您的滚动视图
无法滚动。由于显示内容的高度与滚动视图的高度相等,因此左侧内容被覆盖
如果我在滚动视图
中删除堆栈布局
的高度,它可能会被滚动。但内容还没有完全显示出来。您可以看到此GIF(我更改了最后几个项目的名称,例如历史项目1、历史项目2..)
我必须降低滚动视图的高度,它才能正确显示。下面是代码
<StackLayout Grid.Row="1">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="200"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<StackLayout Grid.Row="0">
<microcharts:ChartView
VerticalOptions="Fill"
HorizontalOptions="StartAndExpand"
WidthRequest="2000"
HeightRequest="200"
x:Name="mcProgress"
Margin="0"
IgnorePixelScaling="True"
/>
</StackLayout>
<StackLayout x:Name="HistoryScroll" Grid.Row="1" TranslationY="120">
<StackLayout Padding="0" Margin="0">
<Frame x:Name="HistoryBtn" Padding="0" Margin="5, 5, 0, 5" CornerRadius="5"
HorizontalOptions="EndAndExpand" VerticalOptions="EndAndExpand"
BackgroundColor="#000058">
<Button
Text="History" TextColor="#fff"
BackgroundColor="Transparent" HorizontalOptions="EndAndExpand"
VerticalOptions="EndAndExpand"
Margin="0" Padding="0" Clicked="Button_Clicked"/>
</Frame>
<Frame BackgroundColor="LightGray" BorderColor="Transparent" Padding="0"
HeightRequest="10" Margin="0" HasShadow="False"/>
</StackLayout>
<ScrollView HeightRequest="200" IsEnabled="True" VerticalScrollBarVisibility="Always">
<StackLayout >
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item"/>
<Label Text="History Item6"/>
<Label Text="History Item5"/>
<Label Text="History Item4"/>
<Label Text="History Item3"/>
<Label Text="History Item2"/>
<Label Text="History Item1"/>
</StackLayout>
</ScrollView>
</StackLayout>
</Grid>
</StackLayout>
这里是运行GIF