用缩放视图填充网格单元

时间:2019-06-04 06:57:36

标签: user-interface xamarin xamarin.forms scale

我想用Grid来缩小View中的空格,该Grid的比例缩小了(Scale =“ 0.5”)。假设我有一个Grid.Row="1",其中有三行两列,并且按比例缩小的“视图”应该像这样填充Grid.Column="1" View(红色轮廓):

achieved in a hacky way

我遇到的问题是Grid将按比例缩小,但它不会重新放置在网格中。前者的大小仍然决定着网格单元的实际大小:

enter image description here

看到这个结果,我看到了两个问题:

  1. 缩放后不执行Horizo​​ntalOptions
  2. 未更新网格单元格的高度以适应缩放视图的新高度

如您在第一张图片中所看到的,我实现了缩小比例并遵守View大小。但是,通过将具有硬编码值的View转换为正确的位置,这可以非常的方式进行。因此,一旦我在此页面上添加任何新视图,缩小的<Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <!--Other Views...--> <CircularView Grid.Row="3" Grid.Column="0" </CircularView> <Grid Grid.Row="3" Grid.Column="0" Grid.ColumnSpan="2" Scale="0.5" VerticalOptions="CenterAndExpand" HeightRequest="240" IsVisible="{Binding HasTermine}"> <MyCustomView/> </Grid> <!--Other Views...--> </Grid> 的位置就会错误。

这是我的(简化)代码:

ColumnSpan="2"

我正在使用Scale="0.5",以便在使用HeightRequest之后具有一列的宽度,但是这可能已经是一种错误的方法,我绝对希望不这样做。还尝试在缩放发生后将MyCustomView更改为120,但这也会缩短7 6 5 5 7 6 8 2 9 2 3 4 2 4 3 的高度。

用缩小的视图填充网格单元的最佳方法是什么?


示例存储库:

https://github.com/Zure1/ScaleSample/

1 个答案:

答案 0 :(得分:0)

我做了一些测试,无法用缩小的View填充Grid Cell

您可以在此处打开免费的Xamarin支持案例:supportforXamarin,以获取更多帮助并查找是否有解决方案。

我使用带有scaled down的视图来实现与您类似的要求,而不是使用grid layout视图,并且我在此处上传了一个示例(基于您):resizeView-xamarin.forms。您可以看一下它,也许您可​​以从中找到一些想法。希望对您有意义。