Skip to content

Instantly share code, notes, and snippets.

@navczydev
Created July 10, 2021 01:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save navczydev/a374bb8832fe4076e1c1ab56bd8c9bd9 to your computer and use it in GitHub Desktop.
Save navczydev/a374bb8832fe4076e1c1ab56bd8c9bd9 to your computer and use it in GitHub Desktop.
package com.example.navigationrailsample
import android.content.res.Configuration
import android.os.Bundle
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import com.example.navigationrailsample.databinding.ActivityMainBinding
import com.google.android.material.badge.BadgeDrawable
import com.google.android.material.floatingactionbutton.FloatingActionButton
/**
* @author Nav Singh
* @see [com.google.android.material.bottomnavigation.BottomNavigationView]
* @see [com.google.android.material.navigationrail.NavigationRailView]
*/
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val activityMainBinding = ActivityMainBinding.inflate(layoutInflater)
setContentView(activityMainBinding.root)
// update the text based on the orientation
activityMainBinding.textview.text = when (resources.configuration.orientation) {
Configuration.ORIENTATION_PORTRAIT -> {
getString(R.string.bottom_nav_label)
}
else -> {
getString(R.string.nav_rail_label)
}
}
// add badge to alarm
val badgeDrawable = activityMainBinding.navigationRail?.getOrCreateBadge(R.id.alarms)
badgeDrawable?.run {
Toast.makeText(applicationContext, "Create badge", Toast.LENGTH_SHORT).show()
number = 999
badgeTextColor =
ContextCompat.getColor(applicationContext, android.R.color.holo_red_light)
maxCharacterCount = 2
badgeGravity = BadgeDrawable.TOP_START
isVisible = true
}
// remove badge
// activityMainBinding.navigationRail?.removeBadge(R.id.alarms)
activityMainBinding.bottomBar?.setOnItemSelectedListener { item ->
when (item.itemId) {
R.id.alarms -> {
Toast.makeText(this, "Alarms Clicked", Toast.LENGTH_SHORT).show()
true
}
else -> {
Toast.makeText(this, "Other item clicked", Toast.LENGTH_SHORT).show()
true
}
}
}
activityMainBinding.navigationRail?.headerView?.findViewById<FloatingActionButton>(R.id.fab_add)
?.setOnClickListener {
Toast.makeText(this, "Fab Clicked", Toast.LENGTH_SHORT).show()
}
activityMainBinding.navigationRail?.setOnItemSelectedListener { item ->
when (item.itemId) {
R.id.alarms -> {
Toast.makeText(this, "Alarms Clicked", Toast.LENGTH_SHORT).show()
true
}
else -> {
Toast.makeText(this, "Other item clicked", Toast.LENGTH_SHORT).show()
true
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment