Xamarin.Forms:StackLayout中的ListView:如何自动调整ListView的大小?

时间:2017-10-05 15:01:09

标签: xamarin.forms

我在它之后立即放置了一个ListView和一个Label,但是在屏幕上,ListView和Label之间有一个空格,文本 ms ListView Windows 10 Mobile

ListView Android 当项目存在时,我希望ListView自动扩展。 还是有一个ItemsControl,比如WPF?

我有这个XAML:

if (INVALID_HANDLE_VALUE != hFind)
    if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
        if (!(wfd.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT))

但ListView lv1不会自动水平扩展以适合Items。

怎么做?

1 个答案:

答案 0 :(得分:1)

设置ListView的RowHeight属性,并使用构造函数中的代码更新列表高度,如下所示:

lv1.PropertyChanged += (object sender, System.ComponentModel.PropertyChangedEventArgs e) =>
            {
                if (e.PropertyName == "ItemsSource")
                {
                    try
                    {
                        if (lv1.ItemsSource != null)
                        {
                            var tmp = (IList) lv1.ItemsSource;
                            lv1.HeightRequest = tmp.Count * lv1.RowHeight;
                        }
                    }
                    catch (Exception ex)
                    {

                    }
                }
            };

您还可以根据行高设置特定高度。

lv1.PropertyChanged += (object sender, System.ComponentModel.PropertyChangedEventArgs e) =>
                {
                    if (e.PropertyName == "ItemsSource")
                    {
                        try
                        {
                            if (lv1.ItemsSource != null)
                            {
                                var tmp = (IList) lv1.ItemsSource;
                                lv1.HeightRequest = tmp.Count * 40;
                            }
                        }
                        catch (Exception ex)
                        {

                        }
                    }
                };