Решение в лоб: на одной активити GridView и ViewPager. Когда один VISIBLE, второй GONE, и наоборот. У каждого свой адаптер, но источник данных один. По нажатию на элемент GridView у ViewPager вызываем setCurrentItem и в качестве параметра отдаем индекс выбранного элемента.