Pio*_*rek 4 xamarin xamarin.forms
Xamarin.Forms ListView有一些趋势,在一些最大高度后停止拉伸.当我在ListView中放入太多项目时,它会创建滚动条,当我添加更多它们时,它的高度不会增加.
如果<ListView>滚动条位于<ScrollView>具有滚动条的对象内,则可能会让用户感到困惑.布局bahaves不自然,迫使用户滚动到listview的末尾,以便能够继续滚动scrollView.
所以,总结一下:
如何在ListView中禁用滚动条,强制它具有所有内部子项的高度?
儿童没有平等的高度.此外,他们可以在应用程序生命周期中更
<ScrollView>
    <StackLayout>
        <!-- some buttons and labels -->
        <ListView ItemsSource="{Binding Data}">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout Padding="20">
                            <!-- Some information -->
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
我测试我的应用程序的平台:Windows 10 UWP.
我也面临同样的问题,我通过在 Scroll View 中使用 Bindable StackLayout 解决了它。
<ScrollView>
    <StackLayout BindableLayout.ItemsSource="{Binding ItemSource}">
        <BindableLayout.ItemTemplate>
            <DataTemplate>
                 <Label Text="{Binding Name}" />
            </DataTemplate>
        </BindableLayout.ItemTemplate>
    </StackLayout>
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
        Listview已经有一个内置的滚动机制,你永远不应该尝试放入ListView内部ScrollView.
ListView使用UI虚拟化,这意味着它只会在可见视图中创建所需的项目,而不是所有项目.例如,如果您加载240个国家/地区,它实际上只会创建20个国家/地区,当您滚动时,它会创建更多或重复使用现有项目.
通过放入ListView内部ScrollView,您将禁用UI虚拟化.
事实上,Xamarin.Forms滚动没有做任何特别的事情,它是提供UI虚拟化以提高速度的底层平台Android/iOS/Windows的功能.
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           11918 次  |  
        
|   最近记录:  |