2016-07-06 17 views
0

2つのリストビューを生きたい単純なコンテンツページがあります。 ListViewsを重ね合わせる必要があります。Xamarinフォーム - 2つのリストビューがスタックされています

StackPannelの一部としてそれらを追加すると、各ListViewはViewの垂直方向の半分を占めます。しかし、私は最初の(トップ)リストビューをスクロールし、その後、2番目のListViewをピックアップするすべての方法を展開したい。したがって、本質的にViewの高さは、各ListViewの高さである必要があります。

私はこれを1 ListViewで実行し、グループ化を行うことができますが、この場合、垂直方向に完全に展開された2つの別々のListViewが必要です。

これを達成するためのトリックとは何ですか?私はScrollView要素を使用すべきですか?

答えて

2

免責事項:ScrollView内でListViewを使用することはお勧めしません。

回答:はい、ScrollViewを使用してください(少なくともdownvotingの前に読んでください)。スクロールの影響を処理する必要があります(少なくともiOS上)。 Xamarinから

男が進化する16のアプリ(ソース:https://github.com/xamarinhq/app-evolve)でこれをやった(私の理解から)

基本的

、あなたは、この手順を実行する必要があります。

  1. NonScrollableListView。 Androidの場合は、RegulerのListviewと同じです。 iOSでは、ListViewのスクロールをfalseに設定します(したがって、ScrollViewと干渉しません)。
  2. AlwaysScrollView。再び、Androidでは、通常のScrollViewだけです。 iOSでは、AlwaysBounceVerticalをtrueに設定します。

十分明確であるかどうかわかりません。お知らせ下さい。 :

[編集 - 重要なお知らせ!] ScrollView内でListViewを使用すると、コレクションの各項目のViewCellを作成して、ページが読み込まれるとListViewがコレクション全体をロードします。意味:40個のアイテムを持つコレクションがある場合、ListViewは40個のViewCellのインスタンスを作成し、CachingStrategyは問題になりません。パフォーマンスのヒットはAndriodで最も顕著です。コレクションのアイテム数を制御しないと、パフォーマンスがひどく損なわれる可能性があることに注意してください。

+0

1つの問題iOSでこの方法を使用しています。 ListViewの高さがデバイスの高さよりも長い場合は、残りのレコードが切り捨てられます。私の考えは、プログラムのリストビューの高さをレコードの数に基づいて設定する必要がありますか?何かご意見は?私はVerticalOptions = "FillAndExpand"をすべての要素に含めています(stackpannel、listview) – aherrick

+1

Nevermind!チェックライン34は、プログラムで高さを調整しているようです:https://github.com/xamarinhq/app-evolve/blob/1c08946a17c2c5faabdced7c032f3fa4bdaccd1a/src/XamarinEvolve.Clients.UI/Pages/Home/FeedPage.xaml.cs – aherrick

関連する問題