Meow Bottom Navigation

Additional

Language
Kotlin
Version
N/A
Created
Feb 10, 2019
Updated
Feb 26, 2020
Owner
Hamidreza Etebarian (oneHamidreza)
Contributors
theapache64
Hamidreza Etebarian (oneHamidreza)
2
Activity
Badge
Generate
Download
Source code
APK file

Advertising

Meow Bottom Navigation

A simple & curved & material bottom navigation for Android written in Kotlin with ♥ .

CAUTION : if you are Java developer and have problems with Kotlin, so check this link: https://github.com/oneHamidreza/MeowBottomNavigationJava

Download

build.gradle (project path)

buildscript {
    repositories {
        jcenter()
    }
}

build.gradle (module path)

dependencies {
  implementation 'com.etebarian:meow-bottom-navigation:1.2.0'
}

Use androidx by adding this lines to gradle.properties. if you want more info, just google AndroidX.

android.useAndroidX=true
android.enableJetifier=true

If you want to add this library to a JAVA Project, you must add kotlin library to build.gradle.

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61"
}

Usage

Add Meow Bottom Navigation in xml

<com.etebarian.meowbottomnavigation.MeowBottomNavigation
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

Add menu items in code.

val bottomNavigation = findView(R.id.bottomNavigation)
bottomNavigation.add(MeowBottomNavigation.Model(1, R.drawable.ic_home))
bottomNavigation.add(MeowBottomNavigation.Model(2, R.drawable.ic_explore))
bottomNavigation.add(MeowBottomNavigation.Model(3, R.drawable.ic_message))

Remember that icons must be vector drawable. Add vectorDrawables.useSupportLibrary = true to your build.gradle inside defaultConfig{ ... }

Customization

<com.etebarian.meowbottomnavigation.MeowBottomNavigation
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:mbn_circleColor="#ffffff"
        app:mbn_backgroundBottomColor="#ffffff"
        app:mbn_countBackgroundColor="#ff6f00"
        app:mbn_countTextColor="#ffffff"
        app:mbn_countTypeface="fonts/SourceSansPro-Regular.ttf"
        app:mbn_defaultIconColor="#90a4ae"
        app:mbn_rippleColor="#2f424242"
        app:mbn_selectedIconColor="#3c415e"
        app:mbn_shadowColor="#1f212121"/>
  • You can change this properties in Kotlin/Java Realtime⌚.

Listeners

kotlin

bottomNavigation.setOnShowListener {
    // YOUR CODES
}
       
bottomNavigation.setOnClickMenuListener {
    // YOUR CODES
}

java

bottomNavigation.setOnClickMenuListener(new Function1<MeowBottomNavigation.Model, Unit>() {
            @Override
            public Unit invoke(MeowBottomNavigation.Model model) {
                // YOUR CODES
                return null;
            }
        });

bottomNavigation.setOnShowListener(new Function1<MeowBottomNavigation.Model, Unit>() {
            @Override
            public Unit invoke(MeowBottomNavigation.Model model) {
                // YOUR CODES
                return null;
            }
        });

Counter Badge

Setting One Tab

bottomNavigation.setCount(TAB_ID, STRING)

Clearing One Tab

bottomNavigation.clearCount(TAB_ID)

Clearing All Tabs

bottomNavigation.clearAllCounts(TAB_ID)

Set Default Tab

Use this function

bottomNavigation.show(TAB_ID)