2016-05-23 3 views
3

私は、カスタムの3レベルの展開可能なリストビューを持っています。 2つのアダプター(BaseExpandableListAdapterParentAdapterChildAdapterまで)でそれを完成させました。Android ExpandableList拡大/折りたたみ状態の保存方法を表示しますか?

内側getChildViewParentAdapter私はちょうどChildAdapterを召喚します。

しかし、私が第3レベルを拡大し、それを表示から外すと、それは折りたたまれた状態に戻ります。

どうすればこの問題を解決できますか?

ChildAdapter内にgetGroupViewの拡張/折りたたみ状態を保存する必要がありますが、これを正しく実装する方法はわかりません。

また、ParentAdapter内にgetChildViewの状態を保存する必要がありますか?

答えて

0

いいです、私はそれをしたようです。

まず、内側に追加項目isExpandedを追加します。 getChildView内部ParentAdapter

は、条件を追加します。これは、あなたのアイテムの拡大/縮小状態を保存し、それらを正しく変更されます

if (item.isExpanded) 
    { 
    expandableListView.expandGroup(groupPosition); 
    notifyDataSetChanged(); 
    } else { 
    expandableListView.collapseGroup(groupPosition); 
    notifyDataSetChanged(); 
    } 

getChildView内部ChildAdapter

//expand child if was previously expanded 
    if (item.isExpanded) 
    { 
    expandableListView.expandGroup(childPosition); 
    } 

これを追加します。

少なくとも、この実装は私の問題を解決しましたが、よりよい解決策が存在する可能性があります。

関連する問題