11package com.commandiron.bubble_navigation_bar_compose
22
3+ import androidx.annotation.DrawableRes
34import androidx.compose.animation.AnimatedVisibility
45import androidx.compose.foundation.clickable
56import androidx.compose.foundation.interaction.MutableInteractionSource
@@ -11,7 +12,10 @@ import androidx.compose.runtime.*
1112import androidx.compose.ui.Alignment
1213import androidx.compose.ui.Modifier
1314import androidx.compose.ui.graphics.Color
15+ import androidx.compose.ui.graphics.painter.Painter
1416import androidx.compose.ui.graphics.vector.ImageVector
17+ import androidx.compose.ui.graphics.vector.rememberVectorPainter
18+ import androidx.compose.ui.res.painterResource
1519import androidx.compose.ui.unit.Dp
1620import androidx.compose.ui.unit.dp
1721
@@ -42,6 +46,27 @@ fun BubbleNavigationBar(
4246 }
4347}
4448
49+ @Composable
50+ fun RowScope.BubbleNavigationBarItem (
51+ modifier : Modifier = Modifier ,
52+ selected : Boolean ,
53+ onClick : () -> Unit ,
54+ @DrawableRes icon : Int ,
55+ selectedColor : Color ,
56+ unSelectedBackgroundColor : Color = MaterialTheme .colorScheme.primaryContainer,
57+ unSelectedIconColor : Color = MaterialTheme .colorScheme.onPrimaryContainer.copy(alpha = 0.1f),
58+ title : String
59+ ) = BubbleNavigationBarItem (
60+ modifier,
61+ selected,
62+ onClick,
63+ painterResource(icon),
64+ selectedColor,
65+ unSelectedBackgroundColor,
66+ unSelectedIconColor,
67+ title,
68+ )
69+
4570@Composable
4671fun RowScope.BubbleNavigationBarItem (
4772 modifier : Modifier = Modifier ,
@@ -52,6 +77,27 @@ fun RowScope.BubbleNavigationBarItem(
5277 unSelectedBackgroundColor : Color = MaterialTheme .colorScheme.primaryContainer,
5378 unSelectedIconColor : Color = MaterialTheme .colorScheme.onPrimaryContainer.copy(alpha = 0.1f),
5479 title : String
80+ ) = BubbleNavigationBarItem (
81+ modifier,
82+ selected,
83+ onClick,
84+ rememberVectorPainter(icon),
85+ selectedColor,
86+ unSelectedBackgroundColor,
87+ unSelectedIconColor,
88+ title,
89+ )
90+
91+ @Composable
92+ fun RowScope.BubbleNavigationBarItem (
93+ modifier : Modifier = Modifier ,
94+ selected : Boolean ,
95+ onClick : () -> Unit ,
96+ iconPainter : Painter ,
97+ selectedColor : Color ,
98+ unSelectedBackgroundColor : Color = MaterialTheme .colorScheme.primaryContainer,
99+ unSelectedIconColor : Color = MaterialTheme .colorScheme.onPrimaryContainer.copy(alpha = 0.1f),
100+ title : String
55101) {
56102 val interactionSource = remember { MutableInteractionSource () }
57103 BoxWithConstraints (
@@ -79,7 +125,7 @@ fun RowScope.BubbleNavigationBarItem(
79125 ) {
80126 Icon (
81127 modifier = Modifier .height(navigationHeight / 2 ),
82- imageVector = icon ,
128+ painter = iconPainter ,
83129 contentDescription = null ,
84130 tint = if (selected) selectedColor else unSelectedIconColor
85131 )
0 commit comments