Finally, keep in mind some of these key differences between the two approaches:
- Bottom navigation bars can persist across category and detail screens, while this is highly discouraged for top tab bars
- Bottom navigation bars always represent the top level of the app’s information hierarchy, whereas top tabs can be used for any level
- A navigation drawer generally contains additional top-level targets when used with bottom navigation bars, while top tab bars are always subordinate to items in the navigation drawer
Offering touch gestures to operate your app is a great way to make the experience fast, fluid and delightful. You should always be mindful of user expectations for gesture-based interaction on a platform. On Android, most of the common gestures have very standardized behaviors, so users will expect your app to support those. There’s an entire section in the material design guidelines covering gestures, but it’s most important to get a couple of the key gestures right.
Horizontal swipe is ubiquitous on touch devices. Unlike iOS, on Android, swiping horizontally within a tab must switch tabs—it’s a key expected behavior. Outside of tabs, swipe is often for carousels or to dismiss elements from a collection, such as removing an item from a list. It’s uncommon to offer horizontal scrolling on Android; snapping to page boundaries is more common.
As for the vertical axis, continuous scrolling is preferred on Android, and snapping to page boundaries is somewhat discouraged. Material design encourages using scrolling techniques like pinning to optimize layout at various scrolling positions. For example, the app bar may slide away as you scroll down and reappear as you scroll back up.
Swiping from the left or right edge of the screen is also a common gesture. Unlike iOS, where left-edge swipes take you back one screen, Android reserves edge swipe for two behaviors. First, if there’s a drawer to the left or right of the screen, such as a navigation drawer (or “hamburger menu”), swiping inward from the side of the screen should open the drawer. Second, in case you have internally swipeable content within a tab, swiping from the edge should change tabs.
One final gesture to consider is long-press. On Android, long-pressing an item should either select it, begin dragging the item, or do nothing. Avoid using long-press for contextual menus, or less expected behaviors like shortcuts to other functionalities. Because long-press is a somewhat hidden gesture, its behavior isn’t normally apparent, so it’s especially best to stick to platform norms. If you really need to expose contextual actions on items, use an onscreen affordance like the overflow icon and popup menu.