Дмитрий, не совсем, это напоминает обычный expandable listview.
Нужно, чтобы при нажатии на элемент, отображались дочерние элементы, при этом скрывались верхние, оставляя один родительский, потом ещё кликаем на его дочерний и скрываются элементы верхнего уровня, оставляя несколько родительских. Например:
1. A, B, C, D
2. Кликаем на B
3. Получается: B -> B1, B2, B3 (A,C,D не видно)
4. Кликаем на B3
5. Остаётся: B, B3->B31, B32, B33, B34. (B1,B2 не видно)
Допустим будем делать на нем. Мне кнопки "Главное меню" и "Посмотреть все товары" тоже придется включить в список элементов. Если есть List, эти кнопки тоже станут продуктами. Или стоит создать интерфейс Item, который будет реализовывать Product и Button. List<Item> items;
И потом в методе getItemViewType проверять instanceof Button
Что скажете?