Skip to content

Commit 5d792bb

Browse files
authored
Make NavBar height adaptive
- Replace fixed NavBar height with adaptive minimum height and vertical padding - Center title and custom title content as the NavBar grows - Add title ellipsis handling to avoid horizontal overflow ?? Auto-generated
1 parent e9d3f6b commit 5d792bb

1 file changed

Lines changed: 9 additions & 5 deletions

File tree

  • app/src/main/java/com/enaboapps/switchify/components

app/src/main/java/com/enaboapps/switchify/components/NavBar.kt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import androidx.compose.foundation.layout.Row
66
import androidx.compose.foundation.layout.WindowInsets
77
import androidx.compose.foundation.layout.WindowInsetsSides
88
import androidx.compose.foundation.layout.fillMaxWidth
9-
import androidx.compose.foundation.layout.height
9+
import androidx.compose.foundation.layout.heightIn
1010
import androidx.compose.foundation.layout.only
1111
import androidx.compose.foundation.layout.padding
1212
import androidx.compose.foundation.layout.systemBars
@@ -27,6 +27,7 @@ import androidx.compose.ui.graphics.Brush
2727
import androidx.compose.ui.graphics.Color
2828
import androidx.compose.ui.graphics.vector.ImageVector
2929
import androidx.compose.ui.res.stringResource
30+
import androidx.compose.ui.text.style.TextOverflow
3031
import androidx.compose.ui.unit.dp
3132
import androidx.navigation.NavController
3233
import com.enaboapps.switchify.theme.Dimens
@@ -72,8 +73,8 @@ fun NavBar(
7273
Row(
7374
modifier = Modifier
7475
.fillMaxWidth()
75-
.height(56.dp)
76-
.padding(horizontal = 4.dp),
76+
.heightIn(min = 56.dp)
77+
.padding(horizontal = 4.dp, vertical = 6.dp),
7778
verticalAlignment = Alignment.CenterVertically
7879
) {
7980
if (canGoBack) {
@@ -91,12 +92,15 @@ fun NavBar(
9192
Box(
9293
modifier = Modifier
9394
.weight(1f)
94-
.padding(start = if (canGoBack) 0.dp else Dimens.spaceM)
95+
.padding(start = if (canGoBack) 0.dp else Dimens.spaceM),
96+
contentAlignment = Alignment.CenterStart
9597
) {
9698
titleContent?.invoke() ?: Text(
9799
text = title,
98100
style = MaterialTheme.typography.titleLarge,
99-
color = MaterialTheme.colorScheme.onPrimary
101+
color = MaterialTheme.colorScheme.onPrimary,
102+
maxLines = 1,
103+
overflow = TextOverflow.Ellipsis
100104
)
101105
}
102106

0 commit comments

Comments
 (0)