3

次のようなネストされたリストビューを持つ LinearLayout があります。

<LinearLayout ... >
    <LinearLayout>
    </LinearLayout>
    <ListView>
    </ListView>
</LinearLayout>

問題は、リストビューがスクロールバーを所有していることです (リストビューのコンテンツのみがスクロール可能です) が、実際には親 LinearLayout がスクロールバーを所有することを望んでいます (したがって、コンテンツ全体をスクロール可能にします)。

ScrollView が ListView の高さを認識しないため (実行時にレンダリングされるように見えます)、ScrollView での親 ListView のラップは成功しませんでした。

ありがとう

編集:解決済み 私の完璧な解決策は、バラクのアドバイスに従って、MergeAdapterを使用することでし

4

3 に答える 3

2

CommonWares MergeAdapterを使用すると、ビューとリスト アダプターを定義し、それらを MergeAdapter に投入して、投入したすべてのものを含む単一のリスト アダプターを取得し、1 つのリストとしてスクロールできます。

私がいくつかの指示で与えたMergeAdapterに関する以前の回答はこちらです

于 2012-05-21T16:18:40.767 に答える
0

リストビューは表示できるよりも多くのアイテムを含むように設計されているため、高さがコントロールの意図である画面サイズ (最良の場合) を超えることはありません。多くの理由で。

あなたがすべきことは、カスタムリストビューアダプターを作成し、リスト内の位置に基づいて必要なビューを作成することだと思います。これにより、すべてのアイテムが必要に応じてスクロールできるようになります。

行ごとに異なるビュー タイプのリストビュー

これは、正確に何をしようとしているのかによって機能する場合と機能しない場合があります。そうでない場合は、スクロール ビュー san のリストビュー内の線形ビューにビューを追加するだけです。

ユース ケース (リスト ビュー内のアイテムの数、メモリの問題など) と他のビューの目的によって異なります。

于 2012-05-21T16:23:47.433 に答える
0

リストビューに含まれる項目が多すぎない限り、代わりにリストビューをテーブルビューに置き換えることができます。リストビューとほぼ同じ方法でテーブルビューでチャイルドビューを引き続き使用できますが、リストビューでできるのと同じ方法でデータバインドすることはできず、アイテムもリサイクルされません。

于 2012-05-21T16:16:57.027 に答える