explaingit

roughike/bottombar

8,361JavaAudience · developerComplexity · 2/5Setup · easy

TLDR

A deprecated Android library for adding a Material Design bottom navigation bar to apps, now archived and replaced by Google's official BottomNavigationView, kept as a historical reference.

Mindmap

mindmap
  root((BottomBar))
    What it does
      Bottom nav bar
      Tab switching
      Material Design
    Status
      Deprecated
      Use official instead
    Configuration
      XML tab file
      Java listener code
    Compatibility
      Android API 11+
      Java only
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Maintain a legacy Android app that already uses BottomBar without rewriting the navigation layer yet.

USE CASE 2

Study how a pre-official Material Design bottom navigation was implemented in Java as a reference for building your own component.

Tech stack

JavaAndroidXML

Getting it running

Difficulty · easy Time to first run · 30min

Project is archived and unmaintained, the author recommends using Google's official BottomNavigationView instead for any new or active project.

In plain English

BottomBar is a now-deprecated Android library that adds a bottom navigation bar to mobile apps. A bottom navigation bar is the row of icons along the bottom of an app screen that lets users switch between main sections, a pattern popularized by apps like Instagram or YouTube. This library was built to match Google's Material Design guidelines for that pattern before Google shipped their own official component. The author is clear in the README that this project is no longer maintained. They wrote it quickly, without sufficient testing, and acknowledge the code has unpredictable behavior as a result. Their own recommendation is to use Google's official BottomNavigationView component instead, which is part of the standard Android support library and receives ongoing updates from Google's team. For anyone still using the library, setup involves defining your navigation tabs in an XML file (specifying an icon and label for each tab), then dropping the BottomBar component into your layout XML and pointing it at that tabs file. You then write a few lines of Java code to respond when a user taps a tab. The library also supports intercepting tab switches, which is useful for gating certain tabs behind a purchase or login flow, and allows different icons to display when a tab is selected versus unselected. Version 2 of the library (the last major release before deprecation) changed the configuration approach to be more XML-driven rather than code-driven. The library requires Android API level 11 (known as Honeycomb, released in 2011) or higher, meaning it drops support for very old Android devices. Given that the project is archived and unmaintained, it is best treated as a historical reference rather than something to use in a new project.

Copy-paste prompts

Prompt 1
I'm maintaining a legacy Android app using roughike/BottomBar. Help me migrate the tab definitions from BottomBar's XML format to Google's official BottomNavigationView with equivalent Java listener code.
Prompt 2
Show me how to intercept a tab switch in roughike/BottomBar version 2 to redirect the user to a login screen if they are not signed in.
Prompt 3
Write the XML tab configuration file and the Java Activity code to set up a BottomBar with three tabs, Home, Search, and Profile, each with an icon.
Open on GitHub → Explain another repo

← roughike on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.