web-dev-qa-db-ja.com

一度に展開可能なリストの子を1つだけ表示します

一度にExpandableListViewの子を1つだけ展開することは可能ですか?したがって、2番目の子を開くと、以前に開いた子が閉じられますか?

43
steve-gregory

私はこれの自動メソッドを知りませんが、クリックされたものを除くすべてのリストグループに対してcollapseGroup()を実行する_ExpandableListView.OnGroupClickListener_を実装できます。これはあなたが望むことをします。

37
bos

コードでbosの答えを確認するだけです:

    expandableList.setOnGroupExpandListener(new OnGroupExpandListener() {
        int previousGroup = -1;

        @Override
        public void onGroupExpand(int groupPosition) {
            if(groupPosition != previousGroup)
                expandableList.collapseGroup(previousGroup);
            previousGroup = groupPosition;
        }
    });
138
Blundell

また、FastAdapterにあるwithOnlyOneExpandedItem()を使用することもできます。

それは FastAdapter外部ライブラリ にありますmikepenzによって

たとえば、ドロワーで使用しているとき

drawer.getAdapter().withOnlyOneExpandedItem(true);
0
Dasser Basyouni