我正在尝试解决Xamarin.Forms应用程序中的一些布局问题。例如,当内容的高度高于正文的高度时,列表将折叠。
我的自定义项目模板列表数量不确定。我想保持每个列表的高度,并有可能滚动它们。
我尝试使用StackLayout,但是它不支持滚动。当我使用ScrollView时,“自动”属性无法正常工作(每个列表之间都有很大的空间)。
我的代码如下:
<Grid>
<Grid.ColumnDefinitions>
...
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0"> //Header
...
</Grid>
<StackLayout Grid.Row="1"> //Group of lists
<ListView x:Name="firstList" ItemTemplate="..." ItemsSource="...">
</ListView>
<ListView x:Name="secondList" ItemTemplate="..." ItemsSource="...">
</ListView>
...
</StackLayout>
</Grid>
如何将这些列表放在全高?
答案 0 :(得分:1)
从移动应用程序的角度来看,您试图实现的目标非常模糊。换个角度思考:当屏幕上堆满了ListView
时,系统如何知道它必须向下滚动页面或向下滚动当前的ListView
?
将ListView嵌套到ScrollView中也是一个很糟糕的做法,因为:
ListView
实现自己的滚动。
ListView
将不会收到任何手势->它们将由父级ScrollView处理。
ListView
还可具有自定义的页眉和页脚,可与列表的元素一起滚动,从而可能提供ScrollView所使用的功能。
如果要坚持这种布局,这里的选择是使用自定义渲染器设计自己的控件实现并管理手势。
希望它对您有帮助并且编码愉快!