【问题标题】:Xamarin forms listview items not fully shownXamarin 表单列表视图项目未完全显示
【发布时间】:2019-08-17 08:30:42
【问题描述】:

我有这个 Xamarin 列表视图:

<ContentPage.Content>
    <ScrollView>
    <StackLayout Padding="20,20,20,20">
            <Grid>
                <StackLayout Margin="10">
                    <Label Text="Quoting and Tankering" Style="{DynamicResource TitleStyle}" Margin="0, 20" HorizontalTextAlignment="Center" />
                    <Label Text="Select Aircraft:" />
                    <Picker Margin="30, 0, 0, 30" x:Name="pickerAircraft" ItemDisplayBinding="{Binding TailNumber}" SelectedItem="{Binding Id}" SelectedIndexChanged="PickerAircraft_SelectedIndexChanged" Title="Aircraft Selector"></Picker>
                    <Button Text="Add Leg" Margin="10,10,10,10" TextColor="Green" Clicked="Button_Clicked_1" />
                    <ListView ItemsSource="{Binding .}" VerticalOptions="Center">
                        <ListView.ItemTemplate>
                            <DataTemplate>
                                <ViewCell>
                                    <StackLayout Padding="10,10,10,10"  HeightRequest="100">
                                        <Label Text="Leg" />
                                        <StackLayout Orientation="Horizontal" HeightRequest="100">
                                            <Entry x:Name="txtICAO" WidthRequest="30" Text="{Binding ICAO}" />
                                            <Button Text="Delete" WidthRequest="50" Clicked="Button_Clicked_2" x:Name="btn_Delete_Item_In_Cart" />
                                        </StackLayout>

                                    </StackLayout>
                                </ViewCell>
                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>
                    <Button Text="Go to Step 2"
            VerticalOptions="CenterAndExpand"
            HorizontalOptions="Center"
            Clicked="Button_Clicked" />
                </StackLayout>
            </Grid>
    </StackLayout>
    </ScrollView>
</ContentPage.Content>

现在,当我渲染页面时,listview 项目部分显示,请检查屏幕截图:

我在列表视图中做错了什么?我是否需要添加一些边距/填充才能显示完整尺寸?

列表视图下方的按钮也不显示。

【问题讨论】:

  • 试试设置HasUnevenRows=True
  • 另外,在滚动视图中包含列表视图是个坏主意!
  • @shanranm 您能否详细说明为什么在滚动视图中包含列表视图是个坏主意?是的,选项 HasUnevenRows 等于 true 似乎可以解决问题。谢谢
  • 它产生两个滚动,一个来自scrollview,一个来自listview,这可能会导致页面行为和尺寸问题。没有任何支持链接,只是出于经验。查看您的 xaml,我认为不需要外部滚动视图、网格和堆栈
  • 在这种情况下,滚动视图、外部堆栈布局和网格似乎都是不必要的

标签: xaml xamarin xamarin.forms


【解决方案1】:

如果您希望所有行占用相同的空间,可以将 Listviews 的 RowHeight 设置为特定数字。

或者

设置HasUnevenRows = "true"

尽管如此,您不应该将 ListView 放在 ScrollView 中,因为 ListView 类实现了自己的滚动并且它只是不接收手势,因为它们都由父 ScrollView 处理。

【讨论】:

  • 谢谢。如果列表视图下方有更多不滚动不可见的控件会怎样?
  • 你应该重新考虑你的设计。或者,您可以使用 Listview Header 和 Footer 来设置该内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-23
  • 1970-01-01
  • 1970-01-01
  • 2021-05-14
  • 1970-01-01
  • 2021-01-26
相关资源
最近更新 更多