0

第 3 レベルでスワイプ機能を備えた 3 レベルの展開可能なリストを作成しています。

キャッシュが使用されている場合、第 3 レベルの swipelistview でスワイプ機能の問題に直面しています。

スワイプには、「47deg/android-swipelistview」https://github.com/47deg/android-swipelistview/ライブラリを使用しています。3 レベルの展開可能なリストを作成するために、http://mylifewithandroid.blogspot.in/2011/02/3-level-expandable-lists.htmlのコードを使用しました。3 つの場所でキャッシュの概念を使用しました: 1. 2 番目のレベルの展開可能なリスト、2. 3 番目のレベルの swipelistview 3. swipelistview ノード。このようにして、展開可能なリストのスクロール/展開/折りたたみ中に良好なパフォーマンスが得られました。

ただし、その時点でスワイプ機能は機能しなくなります。swipelistview ノード レベル (swipelistview のアダプターの getview() 関数内) でキャッシュの使用を停止すると、スワイプ機能が正常に動作します。

私の質問は、swipelistview クラスの getview() で毎回新しいビューを作成するか、convertedview を再利用すると、スワイプ機能が引き続き機能することです。しかし、最初にすべての子に対してのみノードを作成し、次回は getview リクエストでノードを作成すると、準備済みのノードを送信したため、スワイプ機能が機能しなくなります。

PS 私が言うと、スワイプ機能が動作しなくなり、GUI が適切に更新されません。

誰かが必要な場合に備えて、サンプル プロジェクトを用意しています。または、コードの特定の部分が必要な場合は、同じものを提供することもできます。

4

1 に答える 1

0

それを機能させるために、次のアプローチで実装しました。これが最善の方法かどうかはわかりません。

  • getViewTypeCount()リストビュー ベース アダプタで関数と関数を使用しgetItemViewType()て、行ごとに異なるビュー タイプを返しました。これにより、施設内での使用中に同じビューを使用しようとしなくなりますgetView()

  • についても同様にExpandableListViewAdapter、 と を使用getChildTypeCount()getChildType()て異なる型を返しました。

このようにして、私が探していたものを達成することができました。これは、コンポーネントの再利用を許可しないため、最適な方法ではないと確信していますが、私のアプリはリストに何千ものコンポーネントを必要としないため、私の場合はうまくいきます。

于 2013-11-28T13:32:27.600 に答える