2017-05-06 6 views
0

私は画面に項目を表示するためにListViewです。私が表示するアイテムは数によって異なります。だから私の質問は:どのように私はListViewの高さを項目の数に応じて自動的に設定できますか?今私はListViewの画面を下の図のように一番下に置いています。`Xamarin Forms 'の項目数に応じて` ListView`の高さを自動的に設定する方法は?

enter image description here

私はそれが(TableViewを使用する)下の画像のようになりたい:

enter image description here

PS:私はPCLアプリケーションで作業しますがレンダラーを作成するために開いています。現時点では、PCLとiOS側で作業しているだけなので、iOSレンダラーは非常に高く評価されています。

編集:追加XAMLコード:

<ListView x:Name="categoryGroupListView" ItemTapped="openCategoriesPage" HasUnevenRows="true"> 
    <ListView.Header> 
     <StackLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"> 
      // Header code here 
     </StackLayout> 
    </ListView.Header> 
    <ListView.ItemTemplate> 
     <ListView.DataTemplate> 
      <TextCell Text="{Binding CategoryName}" Detail="{Binding Count}"/> 
     </ListView.DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

答えて

0

あなたは、行の内部項目ごとに高さが可変のあなたの行を作りたいなら、あなたは(HasunevenRows =「真」)プロパティを使用する必要があり、リストビュー内部。 例 -

     <ListView.ItemTemplate > 
          <DataTemplate> 
           <ViewCell> 
            <ViewCell.View> 
             //..............             
            </ViewCell.View> 
           </ViewCell> 
          </DataTemplate> 
         </ListView.ItemTemplate> 
        </ListView> 
0

あなたはこのためXamarinのEvolve app sampleをチェックアウトすることができます。そこには、TableViewのルック・アンド・フィールを模倣するものがあります。ListViewsがあります。それはNonScrollableListViewCardViewのようなカスタムクラスを使用します。

0

これはiOSのデフォルトです。 ListView(UITableView)で余分なセルを削除するには、カスタムレンダラーを使用し、空のビューをフッターに追加します。以下のような

何か:

protected override void OnElementChanged(ElementChangedEventArgs<ListView> e) 
{ 
    base.OnElementChanged(e); 

    if (this.Control == null) 
    { 
     return; 
    } 

    this.Control.TableFooterView = new UIView(); 
} 

これは、空のセルを削除しますXAML

<ListView.Footer> 
    <Label /> 
</ListView.Footer> 

どちらのオプションでは、リストビュー上で直接フッターのプロパティを使用しても可能です。

希望するヘルプ.-

関連する問題