@@ -197,16 +197,16 @@ class ReactBottomNavigationView(context: ReactContext) : LinearLayout(context) {
197197 }
198198
199199 private fun onTabSelected (item : MenuItem ) {
200- val selectedItem = items.first { it.title == item.title }
200+ val selectedItem = items[ item.itemId]
201201 selectedItem.let {
202202 onTabSelectedListener?.invoke(selectedItem.key)
203203 emitHapticFeedback(HapticFeedbackConstants .CONTEXT_CLICK )
204204 }
205205 }
206206
207207 private fun onTabLongPressed (item : MenuItem ) {
208- val longPressedItem = items.firstOrNull { it.title == item.title }
209- longPressedItem? .let {
208+ val longPressedItem = items[ item.itemId]
209+ longPressedItem.let {
210210 onTabLongPressedListener?.invoke(longPressedItem.key)
211211 emitHapticFeedback(HapticFeedbackConstants .LONG_PRESS )
212212 }
@@ -220,6 +220,10 @@ class ReactBottomNavigationView(context: ReactContext) : LinearLayout(context) {
220220 this .items = items
221221 items.forEachIndexed { index, item ->
222222 val menuItem = getOrCreateItem(index, item.title)
223+ if (item.title != = menuItem.title) {
224+ menuItem.title = item.title
225+ }
226+
223227 menuItem.isVisible = ! item.hidden
224228 if (iconSources.containsKey(index)) {
225229 getDrawable(iconSources[index]!! ) {
@@ -370,7 +374,7 @@ class ReactBottomNavigationView(context: ReactContext) : LinearLayout(context) {
370374
371375 private fun updateTextAppearance () {
372376 if (fontSize != null || fontFamily != null || fontWeight != null ) {
373- val menuView = getChildAt(0 ) as ? ViewGroup ? : return
377+ val menuView = bottomNavigation. getChildAt(0 ) as ? ViewGroup ? : return
374378 val size = fontSize?.toFloat()?.takeIf { it > 0 } ? : 12f
375379 val typeface = ReactFontManager .getInstance().getTypeface(
376380 fontFamily ? : " " ,
@@ -403,7 +407,9 @@ class ReactBottomNavigationView(context: ReactContext) : LinearLayout(context) {
403407
404408 private fun updateTintColors (item : MenuItem ? = null) {
405409 // First let's check current item color.
406- val currentItemTintColor = items.find { it.title == item?.title }?.activeTintColor
410+ val currentItemTintColor = item?.itemId?.let { itemId ->
411+ items[itemId].activeTintColor
412+ }
407413
408414 // getDefaultColor will always return a valid color but to satisfy the compiler we need to check for null
409415 val colorPrimary = currentItemTintColor ? : activeTintColor ? : Utils .getDefaultColorFor(
0 commit comments