Xamarin.forms 每个Listview行有多个单元格?
奇怪的是,我没有看到任何其他SO或文档,但我想知道是否有可能拥有一个每行有多个单元格的Xamarin表单列表视图(循环缓存策略,如果有区别的话)?现在我们有一个listview,它只显示一个300宽的图像(每边10个填充以使其居中)。这在iPhone上效果很好,但在iPad上,它看起来有点呆板,有大量的空白(你可以想象,iPad上只有300宽的图像)。有没有办法让listview每行包含多个单元格?特别是,如果它可以是一个变量。所以在纵向上可以是2,在横向上可以是3 XAML: 自定义网格单元Xamarin.forms 每个Listview行有多个单元格?,xamarin.forms,Xamarin.forms,奇怪的是,我没有看到任何其他SO或文档,但我想知道是否有可能拥有一个每行有多个单元格的Xamarin表单列表视图(循环缓存策略,如果有区别的话)?现在我们有一个listview,它只显示一个300宽的图像(每边10个填充以使其居中)。这在iPhone上效果很好,但在iPad上,它看起来有点呆板,有大量的空白(你可以想象,iPad上只有300宽的图像)。有没有办法让listview每行包含多个单元格?特别是,如果它可以是一个变量。所以在纵向上可以是2,在横向上可以是3 XAML: 自定义网格单元
layout = new Xamarin.Forms.Grid();
layout.RowDefinitions.Add(new Xamarin.Forms.RowDefinition { Height = new Xamarin.Forms.GridLength(1, Xamarin.Forms.GridUnitType.Star) });
layout.ColumnDefinitions.Add(new Xamarin.Forms.ColumnDefinition { Width = new Xamarin.Forms.GridLength(1, Xamarin.Forms.GridUnitType.Star) });
layout.Children.Add(LoadingText, 0, 0);
layout.Children.Add(cellImage, 0, 0);
layout.HorizontalOptions = Xamarin.Forms.LayoutOptions.CenterAndExpand;
layout.VerticalOptions = Xamarin.Forms.LayoutOptions.CenterAndExpand;
cellImage.HorizontalOptions = Xamarin.Forms.LayoutOptions.CenterAndExpand;
cellImage.VerticalOptions = Xamarin.Forms.LayoutOptions.CenterAndExpand;
cellImage.WidthRequest = 260;
cellImage.HeightRequest = 173;
View = layout;
Xamarin.Forms.ListView不支持每行有多个单元格。可以根据行使用不同的单元格,但仅此而已
我建议以本机方式创建此控件。我还要补充一点,我从未见过一个应用程序的列表中每行有多个单元格。我见过大的单元格,里面有很多信息,但不是一行多个单元格 你是说包装纸?不,我指的是列表视图。我想知道这是否可能。也许不是。我真的很感谢你分享这一点。事实上。。。列表视图不能满足这一要求。因此,您需要恢复到另一个控件。
public System.Collections.ObjectModel.ObservableCollection<ViewModels.GridCellViewModel> cells { get; set; }
gridList.ItemTemplate = new DataTemplate(typeof(Classes.CustomGridCell));
gridList.ItemsSource = cells;
public class GridCellViewModel
{
public string Image { get; set; }
public string Headline { get; set; }
public Xamarin.Forms.ActivityIndicator ActivityIndicator { get; set; }
public bool IsAd { get; set; }
public bool AdHasLoaded { get; set; } = false;
public int collectionIndex { get; set; }
public int rawCellIndex { get; set; }
public int numberOfStories { get; set; }
public DateTime LoadPageDate { get; set; }
public int StoryId { get; set; }
}
layout = new Xamarin.Forms.Grid();
layout.RowDefinitions.Add(new Xamarin.Forms.RowDefinition { Height = new Xamarin.Forms.GridLength(1, Xamarin.Forms.GridUnitType.Star) });
layout.ColumnDefinitions.Add(new Xamarin.Forms.ColumnDefinition { Width = new Xamarin.Forms.GridLength(1, Xamarin.Forms.GridUnitType.Star) });
layout.Children.Add(LoadingText, 0, 0);
layout.Children.Add(cellImage, 0, 0);
layout.HorizontalOptions = Xamarin.Forms.LayoutOptions.CenterAndExpand;
layout.VerticalOptions = Xamarin.Forms.LayoutOptions.CenterAndExpand;
cellImage.HorizontalOptions = Xamarin.Forms.LayoutOptions.CenterAndExpand;
cellImage.VerticalOptions = Xamarin.Forms.LayoutOptions.CenterAndExpand;
cellImage.WidthRequest = 260;
cellImage.HeightRequest = 173;
View = layout;