【发布时间】:2021-06-02 10:01:27
【问题描述】:
我有一个 Grid,在 ScrollView 中
行高是自动的,因为根据里面的文本,行可以有更大的高度。
用户可以添加任意数量的行,但我想在网格上保留一些文本,所以我将网格放在滚动视图中,这样,网格在屏幕上只采用相同的大小,并且用户可以滚动浏览行。
我的问题是,由于我的网格没有固定高度(例如,如果只有 2 行,我不希望它固定在 10 000),它只是采用 scollview 高度,而我的如果没有足够的空间,行将被截断,而不是采用它们需要的大小,从而扩大滚动视图。
编辑:第一张图,网格高度固定为 2000,滚动视图工作良好但行下方有空白空间(黄色背景是滚动视图背景颜色)
第二张图,我删除了网格高度,现在,网格只占用滚动视图高度(500),如果我的行需要更多空间,它们会被截断
另外,我的滚动视图甚至不能滚动了
你们有什么想法吗?谢谢:)
编辑:
这里的结构,自动行高的网格变成高度固定的滚动视图
<ScrollView HeightRequest="500" BackgroundColor="Yellow">
<Grid x:Name="gridLignes" BackgroundColor="#E8E8E8">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
</Grid>
</ScrollView>
作为一种解决方法,我将网格高度固定为 2000,但我的滚动视图内有无用的空白空间:/
我认为我的问题来自我使用网格的方式。我试图将我的网格放在滚动视图之外,让默认的网格高度和我的行具有自动高度,但它仍然无法正常工作。
但是,如果行处于自动高度,则网格应占用其子项所需的空间。
我使用网格的方式是:
-创建默认模板行。在每一列内,都有控件(条目、选择器等)。然后,我在我的网格中添加了这个模板 4 次。
-当值更改时,根据所选项目,一些文本会显示在另一列中(这就是我需要自动高度的原因)。 要添加此文本,我直接访问网格子 (grid.Children[i]) 并且更改是值,因此,在添加文本之前,该行就在这里。
也许我需要删除该行,使用正确的值重新创建它,然后在我的网格中再次添加它。
我稍后会尝试这个,并会更新这个案例。也许有人会遇到和我一样的问题
【问题讨论】:
-
根据您的描述,我不清楚您的问题是什么,请在此处发布更详细的问题或截图。
-
感谢您的宝贵时间!我用 2 个屏幕截图编辑了我的帖子
-
您添加了 ListView 或其他在网格中显示数据列表的控件?也许你可以发布更多关于你的问题的代码,或者在 github 上提供一个简单的示例,我会下载你的示例进行测试。
-
我在多选模式下对一列使用syncfusion sfautocomplete。如果我仍然无法使其工作,我将尝试不使用并处理样本!再次感谢:)
-
好的,所以我创建了一个 git 项目(以前从未使用过 git,所以也许我做错了)github.com/MVasseur-Nexti/GitScrollInGrid 如您所见,网格位于滚动视图中(我的测试项目名称错误)。但是,如果您在编辑器中输入非常长的文本(占位符显示“EnterTexthere”),文本将被截断,而不是在滚动视图中占用更多空间。如果您需要更多信息,请告诉我,我实际上已经放弃了这一点:/
标签: c# xamarin grid scrollview