A simple & curved & material bottom navigation for Android written in kotlin.
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"
}
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{ ... }
<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⌚.
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;
}
});
Setting One Tab
bottomNavigation.setCount(TAB_ID, STRING)
Clearing One Tab
bottomNavigation.clearCount(TAB_ID)
Clearing All Tabs
bottomNavigation.clearAllCounts(TAB_ID)
Use this function
bottomNavigation.show(TAB_ID)