저는 이런식으로 구현했었습니다.
1. 상단메뉴와 하단탭에 해당하는 메뉴레이아웃과 클래스를 별도로 구현
2. BaseActivity에서 상단메뉴와 하단탭에 해당하는 클래스를 생성하고 배열로 관리
3. 상단메뉴를 보여주거나 사라지게 하는 메소드 구현(사라지거나 보여질 때 애니메이션 효과)
4. 상단메뉴와 하단탭이 필요한 모든 Activity는 BaseActivity를 상속함
5. 필요한 상황에 따라 3번에서 구현한 메소드 호출
(작성자님의 상황이라면 GridView에 스크롤 리스너나 터치리스너 같은걸 등록해서 이벤트 맞게 3번에서 구현한 메소드를 호출하는 방식으로 하시면 됩니다)