Make navigation rail adaptive for small medium screens.

This commit is contained in:
Alex Hart
2025-10-30 15:15:11 -03:00
parent 9095ddaf19
commit 41ba3383b2

View File

@@ -12,6 +12,7 @@ import androidx.compose.animation.core.tween
import androidx.compose.foundation.background import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.BoxScope import androidx.compose.foundation.layout.BoxScope
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.defaultMinSize
import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.height
@@ -42,6 +43,7 @@ import androidx.compose.ui.res.colorResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.drawText import androidx.compose.ui.text.drawText
import androidx.compose.ui.text.rememberTextMeasurer import androidx.compose.ui.text.rememberTextMeasurer
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.IntSize import androidx.compose.ui.unit.IntSize
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.core.graphics.BlendModeColorFilterCompat import androidx.core.graphics.BlendModeColorFilterCompat
@@ -213,15 +215,18 @@ fun MainNavigationRail(
onDestinationSelected: (MainNavigationListLocation) -> Unit onDestinationSelected: (MainNavigationListLocation) -> Unit
) { ) {
NavigationRail( NavigationRail(
containerColor = SignalTheme.colors.colorSurface1, containerColor = SignalTheme.colors.colorSurface1
header = {
MainFloatingActionButtons(
destination = state.currentListLocation,
callback = mainFloatingActionButtonsCallback,
modifier = Modifier.padding(vertical = 40.dp)
)
}
) { ) {
Spacer(modifier = Modifier.height(40.dp).weight(1f, fill = false))
MainFloatingActionButtons(
destination = state.currentListLocation,
callback = mainFloatingActionButtonsCallback,
modifier = Modifier.padding(vertical = 8.dp)
)
Spacer(modifier = Modifier.height(40.dp).weight(1f, fill = false))
val entries = remember(state.isStoriesFeatureEnabled) { val entries = remember(state.isStoriesFeatureEnabled) {
if (state.isStoriesFeatureEnabled) { if (state.isStoriesFeatureEnabled) {
MainNavigationListLocation.entries.filterNot { it == MainNavigationListLocation.ARCHIVE } MainNavigationListLocation.entries.filterNot { it == MainNavigationListLocation.ARCHIVE }
@@ -342,6 +347,7 @@ private fun formatCount(count: Int): String {
} }
@DayNightPreviews @DayNightPreviews
@Preview(device = "spec:parent=pixel_7,orientation=landscape")
@Composable @Composable
private fun MainNavigationRailPreview() { private fun MainNavigationRailPreview() {
Previews.Preview { Previews.Preview {