2017-01-10 18 views
0

これは他のSOやドキュメントを見たことがないことが分かりましたが、行ごとに複数のセルを持つXamarin Forms Listview(リサイクルキャッシュ戦略、違いがある場合)が可能かどうか疑問に思っていましたか?今では、単に幅300ピクセルのイメージを表示するリストビューを用意しています。これはiPhone上ではうまくいくが、iPad上では、空白部分がある(あなたが想像しているように、iPad上に300ワイドの画像しかない)。リストビューに複数のセルが含まれるようにする方法はありますか行?特に、それが変数である可能性がある場合。だから、肖像画の上にそれが景観にそれができる、2することができ3.リストビュー行あたり複数のセル?

XAML:

<ListView x:Name="gridList" CachingStrategy="RecycleElement" ItemAppearing="gridList_ItemAppearing"> 
    </ListView> 

コードCustomGridCell

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; } 
    } 

GridCellViewModel

public System.Collections.ObjectModel.ObservableCollection<ViewModels.GridCellViewModel> cells { get; set; } 
gridList.ItemTemplate = new DataTemplate(typeof(Classes.CustomGridCell)); 
gridList.ItemsSource = cells; 

の後ろ
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; 
+0

あなたはWrapPanelを意味していますか? http://www.spikie.be/blog/post/2015/04/02/.aspx – Depechie

+0

まあ、いいえ、私はリストビューを意味します。それが可能かどうか疑問に思っていた。おそらくそうではありません。私はそれを共有してくれてありがとう。 – jdmdevdotnet

+0

確かに...リストビューはそれに対応しません。したがって、別のコントロールに戻す必要があります。 – Depechie

答えて

0

Xamarin.Forms.ListViewは、1行に複数のセルを持つことをサポートしていません。 DataTemplateSelectorを使用すると、行に基づいて異なるセルを使用することができますが、それはそれです。

このコントロールをネイティブ作成することをおすすめします。また、行ごとに複数のセルがあるリストを持つアプリケーションを見たことがないことを追加します。私はそれらの中に多くの情報を持っているが、連続して複数の細胞ではない大きな細胞を見てきました。

関連する問題