展開可能なリスト ビューを使用して Android アプリケーションを開発しています。実際に必要なのは、子を含むグループをリストしていることです。
展開できないグループを選択すると、展開する必要があります。その時点で 2 番目のグループを選択すると、最初のグループが折りたたまれます。Google で調べましたが、欲しいものが見つかりませんでした。私を助けてください。
展開可能なリスト ビューを使用して Android アプリケーションを開発しています。実際に必要なのは、子を含むグループをリストしていることです。
展開できないグループを選択すると、展開する必要があります。その時点で 2 番目のグループを選択すると、最初のグループが折りたたまれます。Google で調べましたが、欲しいものが見つかりませんでした。私を助けてください。
このコードを使用すると、これが機能します
expandableList.setOnGroupExpandListener(new OnGroupExpandListener() {
int previousItem = -1;
@Override
public void onGroupExpand(int groupPosition) {
if(groupPosition != previousItem )
expandableList.collapseGroup(previousItem );
previousItem = groupPosition;
}
});
次のメソッドを取得ExpendableListView
してオーバーライドします -setOnGroupExpandListener
expandableListView = (ExpandableListView) findViewById(R.id.exp_listview);
expandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
int previousItem = -1;
@Override
public void onGroupExpand(int groupPosition) {
if (groupPosition != previousItem)
expandableListView.collapseGroup(previousItem);
previousItem = groupPosition;
}
});
これを ExpandableListAdapter に入れてみてください。listView は ExpandableListView 自体への参照です。そして、lastExpandedGroupPosition は、ExpandableListAdapter 内で定義された整数メンバー変数です。
@Override
public void onGroupExpanded(int groupPosition)
{
//collapse the old expanded group, if not the same
//as new group to expand
if(groupPosition != lastExpandedGroupPosition)
{
listView.collapseGroup(lastExpandedGroupPosition);
}
super.onGroupExpanded(groupPosition);
lastExpandedGroupPosition = groupPosition;
}
elstListView1.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
@Override
public void onGroupExpand(int groupPosition) {
for(int i=0;i<listDataHeader.size();i++){
if(i==groupPosition){
//do nothing}
else{
elstListView1.collapseGroup(i);
}
}
}
});
私も同じ問題に直面しました。しかし、次のコードで問題を解決できました。
拡張可能なリストに4つのヘッダーがあったので、それに基づいてこのように書きました
expListView.setOnGroupExpandListener(new OnGroupExpandListener() {
@Override
public void onGroupExpand(int groupPos) {
// TODO Auto-generated method stub
expListView.collapseGroup(groupPos+1);
expListView.collapseGroup(groupPos-1);
expListView.collapseGroup(groupPos-2);
expListView.collapseGroup(groupPos+2);
expListView.collapseGroup(groupPos+3);
expListView.collapseGroup(groupPos-3);
}
});`