0
我有ListView,我希望它占据了5个元素的高度。如果列表中有2个项目,则按钮上会留下空间。如果列表视图有8个项目,用户需要滚动查看其余3个项目。 Xamarin Forms中可能吗?如何将ListView Height设置为Xamarin Forms中的5个元素?
我试着设置HeightRequest,但我不知道物品的高度。
我有ListView,我希望它占据了5个元素的高度。如果列表中有2个项目,则按钮上会留下空间。如果列表视图有8个项目,用户需要滚动查看其余3个项目。 Xamarin Forms中可能吗?如何将ListView Height设置为Xamarin Forms中的5个元素?
我试着设置HeightRequest,但我不知道物品的高度。
你可以尝试子类化ListView并设置Element renderheight来计算总的列表视图高度。我在这里添加了一些类似的代码,可以帮助你。
public MainPage()
{
InitializeComponent();
BindingContext = new MainViewModel();
BackgroundColor = Color.Silver;
userListView = new ClistView();
userListView.BackgroundColor = Color.Olive;
userListView.VerticalOptions = LayoutOptions.Start;
userListView.ItemsSource = (BindingContext as MainViewModel).Items;
userListView.SizeChanged += VisualElement_OnSizeChanged;
userListView.RowHeight = 80;
Content = userListView;
}
private void VisualElement_OnSizeChanged(object sender, EventArgs e)
{
if (userListView.HeightRequest < 0)
userListView.HeightRequest = userListView.ElementHeight * 5;
}
CListView中 - CustomListView
public class ClistView : ListView
{
public double ElementHeight { get; set; }
protected override void SetupContent(Cell content, int index)
{
if (ElementHeight <= 0 && RowHeight <= 0)
ElementHeight = content.RenderHeight;
else
ElementHeight = RowHeight;
base.SetupContent(content, index);
}
}