This widget is a custom LinearLayout that has an awesome animating background. You can customize the background color and animate duration. It also provider two listeners to perform some callbacks, they are: OnTabSelectedListener and OnTabReselectedListener. After setting an adapter this widget, you should call setCurrentItem() method to indicator which tab is showing at first.
For more details, checkout this repository and enjoy yourself.