展開可能なリストビューが表示されている間に、すべての子を展開したいと思います。現在、私のコードは次のようになっています。
ExpandableListView listView = (ExpandableListView) findViewById(R.id.view);
int count = viewAdapted.getGroupCount();
for (int position = 1; position <= count; position++)
listView.expandGroup(position - 1);
かなりいです。これを行うより良い方法はありますか?
カスタムアダプタのgetGroupViewで展開できます。
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
View v = super.getGroupView(groupPosition, isExpanded, convertView, parent);
ExpandableListView mExpandableListView = (ExpandableListView) parent;
mExpandableListView.expandGroup(groupPosition);
return v;
}
グラック!
このコードをアダプターに配置すると、展開リストが開いたままになり、そのクローズ機能が無効になります。
ExpandableListView mExpandableListView = (ExpandableListView) parent;
mExpandableListView.expandGroup(groupPosition);
これは少しの回避策かもしれませんが、本来あるべき方法で機能します。 (開始時に)すべてのグループを開き、いつでも閉じることができます
for ( int i = 0; i < groupList.getCount(); i++ ) {
groupList.expandGroup(i);
}
注:拡張可能ビューでアダプターを設定した後にこのコードを配置すると、エラーが発生する可能性があります。それが役に立てば幸い。
最初にアダプタを埋めてから、このコードをoncreateメソッドに入れます
int count = adapter.getGroupCount();
for ( int i = 0; i < count; i++ )
listView.expandGroup(i);
すべてのグループを展開する
for(int i=0; i < myAdapter.getGroupCount(); i++)
myExpandableListView.expandGroup(i);
折りたたみ不可にしたい場合
myExpandableListView.setOnGroupClickListener(new OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView parent, View v,int groupPosition, long id) {
return true;
}
});
リストされた応答を試しましたが、グループ数を取得するために getGroupCount() メソッドを使用できることがわかりました。
このメソッドを使用すると、ExpandableListView
のすべてのグループを繰り返して展開できます
for (int i = 0; i < myExpandableListView.getExpandableListAdapter().getGroupCount(); i++) {
//Expand group
myExpandableListView.expandGroup(i);
}