Refactor(OxygenApp): Optimize app bar

Optimize app bar when scroll
This commit is contained in:
2024-07-17 17:27:11 +08:00
parent 8fedafd261
commit 5efbf660c6

View File

@@ -14,7 +14,6 @@ import androidx.compose.foundation.layout.safeDrawing
import androidx.compose.foundation.layout.safeDrawingPadding import androidx.compose.foundation.layout.safeDrawingPadding
import androidx.compose.foundation.layout.windowInsetsPadding import androidx.compose.foundation.layout.windowInsetsPadding
import androidx.compose.material3.BottomAppBar import androidx.compose.material3.BottomAppBar
import androidx.compose.material3.BottomAppBarDefaults
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
@@ -82,9 +81,7 @@ fun OxygenApp(appState: OxygenAppState) {
val handleOnCanScrollChange = { value: Boolean -> val handleOnCanScrollChange = { value: Boolean ->
canScroll = value canScroll = value
} }
val topAppBarScrollBehavior = val topAppBarScrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior()
TopAppBarDefaults.enterAlwaysScrollBehavior(canScroll = { canScroll })
val bottomAppBarScrollBehavior = BottomAppBarDefaults.exitAlwaysScrollBehavior()
LaunchedEffect(isOffline) { LaunchedEffect(isOffline) {
if (isOffline) { if (isOffline) {
@@ -105,8 +102,7 @@ fun OxygenApp(appState: OxygenAppState) {
Scaffold( Scaffold(
modifier = Modifier modifier = Modifier
.nestedScroll(topAppBarScrollBehavior.nestedScrollConnection) .nestedScroll(topAppBarScrollBehavior.nestedScrollConnection),
.nestedScroll(bottomAppBarScrollBehavior.nestedScrollConnection),
containerColor = Color.Transparent, containerColor = Color.Transparent,
contentColor = MaterialTheme.colorScheme.onBackground, contentColor = MaterialTheme.colorScheme.onBackground,
contentWindowInsets = WindowInsets(0, 0, 0, 0), contentWindowInsets = WindowInsets(0, 0, 0, 0),
@@ -116,7 +112,6 @@ fun OxygenApp(appState: OxygenAppState) {
visible = appState.shouldShowBottomBar && destination != null, visible = appState.shouldShowBottomBar && destination != null,
enter = slideInVertically { it }) { enter = slideInVertically { it }) {
BottomAppBar( BottomAppBar(
scrollBehavior = bottomAppBarScrollBehavior,
windowInsets = WindowInsets(0) windowInsets = WindowInsets(0)
) { ) {
OxygenBottomBar( OxygenBottomBar(