2017-04-13 23 views
0

私はListViewを持っており、正確に5つの要素の高さを占めたいと思います。リストに2つの項目がある場合、ボタンにはスペースが残っています。リストビューに8つのアイテムがある場合、残りの3つのアイテムを表示するにはスクロールする必要があります。 Xamarinフォームで可能ですか?XamarinフォームでListViewの高さを5要素に設定するにはどうすればよいですか?

HeightRequestを設定しようとしましたが、アイテムの高さがわかりません。

答えて

1

ListViewをサブクラス化して、要素のレンダリングを設定して、リストビューの高さ全体を計算できます。ここにあなたに役立つかもしれないいくつかの同様のコードを追加しています。

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

Final Image

関連する問題