Это должно быть довольно просто с ExpandableListView.Расширьте BaseExpandableListAdapter, чтобы получить контроль над тем, как отображаются элементы группы и элементы расширенного списка, и как должны работать события, инициируемые на них.Имея это, вы можете организовать это представление для отображения группы товаров длительного пользования для одного элемента и расширяемый список для нескольких элементов.С таким адаптером вы можете передать ExpendableListView, чтобы он работал
Пример его реализации приведен ниже.Обратите внимание, что здесь показаны не все методы, которые необходимо реализовать, так как они не связаны с проблемой.Элемент - это некоторый воображаемый класс, экземпляры которого могут сами сказать, как они должны отображаться.
public class MyExpandableListAdapter extends BaseExpandableListAdapter {
private final List<Element> elements;
public MultiSelectExpandableListAdapter(Context c, List<Element> elements) {
this.elements = elements;
}
public View getGroupView(final int group, final boolean expanded, final View convertView,
final ViewGroup parent) {
if (elements.get(group).shouldBeDisplayedAsAGroup()) {
// inflate and setup view that displays expandable view header
} else {
// inflate and setup view of element that should be displayed as single element
}
}
public View getChildView(final int group, final int child, final boolean lastChild, final View convertView,
final ViewGroup parent) {
// inflate and setup child view
}
}