@@ -197,16 +197,16 @@ class ReactBottomNavigationView(context: ReactContext) : LinearLayout(context) {
197
197
}
198
198
199
199
private fun onTabSelected (item : MenuItem ) {
200
- val selectedItem = items.first { it.title == item.title }
200
+ val selectedItem = items[ item.itemId]
201
201
selectedItem.let {
202
202
onTabSelectedListener?.invoke(selectedItem.key)
203
203
emitHapticFeedback(HapticFeedbackConstants .CONTEXT_CLICK )
204
204
}
205
205
}
206
206
207
207
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 {
210
210
onTabLongPressedListener?.invoke(longPressedItem.key)
211
211
emitHapticFeedback(HapticFeedbackConstants .LONG_PRESS )
212
212
}
@@ -220,6 +220,10 @@ class ReactBottomNavigationView(context: ReactContext) : LinearLayout(context) {
220
220
this .items = items
221
221
items.forEachIndexed { index, item ->
222
222
val menuItem = getOrCreateItem(index, item.title)
223
+ if (item.title != = menuItem.title) {
224
+ menuItem.title = item.title
225
+ }
226
+
223
227
menuItem.isVisible = ! item.hidden
224
228
if (iconSources.containsKey(index)) {
225
229
getDrawable(iconSources[index]!! ) {
@@ -370,7 +374,7 @@ class ReactBottomNavigationView(context: ReactContext) : LinearLayout(context) {
370
374
371
375
private fun updateTextAppearance () {
372
376
if (fontSize != null || fontFamily != null || fontWeight != null ) {
373
- val menuView = getChildAt(0 ) as ? ViewGroup ? : return
377
+ val menuView = bottomNavigation. getChildAt(0 ) as ? ViewGroup ? : return
374
378
val size = fontSize?.toFloat()?.takeIf { it > 0 } ? : 12f
375
379
val typeface = ReactFontManager .getInstance().getTypeface(
376
380
fontFamily ? : " " ,
@@ -403,7 +407,9 @@ class ReactBottomNavigationView(context: ReactContext) : LinearLayout(context) {
403
407
404
408
private fun updateTintColors (item : MenuItem ? = null) {
405
409
// 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
+ }
407
413
408
414
// getDefaultColor will always return a valid color but to satisfy the compiler we need to check for null
409
415
val colorPrimary = currentItemTintColor ? : activeTintColor ? : Utils .getDefaultColorFor(
0 commit comments