0

多数の親エントリと子エントリを持つ ExpandableListView があります。

1 つの「親」が開かれると、以前に開いていたグループが自動的に閉じられるため、1 つのグループのみが 1 つのトップで開かれます。ただし、表示されているデータの現在の上部にグループを表示したいと考えています。つまり、「親」はリストで最初に表示され、その後に子が表示されます。

実際に起こっているのは、正しく開いているが、ランダムに配置されているということです。ほとんどの場合、一番上に表示されている行は実際には子の 1 つであり、親エントリに到達するにはスクロール バックする必要があります。

ビューの一番上の行として表示されるべきものを強制する方法はありますか?

4

1 に答える 1

5

そのため、多くの苦労の末、解決策を見つけることができました。

categoryListView.setOnGroupClickListener(new OnGroupClickListener() {

        @Override
        public boolean onGroupClick(ExpandableListView parent, View v,
                int groupPosition, long id) {

            categoryListView.setSelectionFromTop(groupPosition, 0);
            Boolean shouldExpand = (!categoryListView.isGroupExpanded(groupPosition));
            categoryListView.collapseGroup(lastClickedPosition);
            if (shouldExpand){
                categoryListView.expandGroup(groupPosition);
            }                
            lastClickedPosition = groupPosition;

            return true;
        }
    });
于 2012-06-06T08:00:38.813 に答える