AndroidでExpandableListViewをフラット化する方法はありますか?ExpandableListViewがあり、ユーザーがその中の特定の文字列を検索するときに、グループを表示せずに、検索文字列に一致するすべての子を表示したいと思います。
2 に答える
私は2つの方法があると思います:
[1]検索用にXMLで別の1つのリストビュー(デフォルトでは非表示)を取得します-一致結果を表示します。検索が発生したら、ExpandableListViewを非表示にし、 Visibility=VISIBLEを設定します。
ただし、このように、[OK]のようなボタンを配置する必要があります。ユーザーが検索済みリストを表示したら、[OK]を押すとExpandableListViewが表示されます。
[2] CHILD CLASSのカスタム行を設定して、検索結果が表示されたときに、Left MARGIN = --10dp(または必要なもの)を設定できます。また、検索時にFLAGを使用する必要があります。また、アダプタでは、このFLAGをチェックして、textviewの左マージンを設定する必要があります。
第三の道を編集する
[3]フラグが設定されている場合は、GROUP-LISTにSEARCHED項目を入力します。別の余分な空白リストを 取得し、子リストに空白リストを入力します。
このように、左マージンを設定する必要はありません。
アダプターで、空のビューを返します。これにより、グループビューが表示されなくなります。
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
return new View(parentActivity);
}
ExpandableListViewで、すべてのグループを展開します。
int count = adapter.getGroupCount();
for (int i=0; i<count; i++)
{
listView.expandGroup(i);
}