Add: Scrolling TopBar

This commit is contained in:
machiav3lli 2022-10-08 02:48:57 +02:00
parent a7e5772310
commit 376db653ee
2 changed files with 11 additions and 1 deletions

View File

@ -12,11 +12,13 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.SideEffect
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.res.stringResource
import androidx.lifecycle.lifecycleScope
import com.google.accompanist.navigation.animation.rememberAnimatedNavController
@ -100,18 +102,21 @@ class MainActivityX : AppCompatActivity() {
) {
val query by searchQuery.collectAsState(initial = "")
val navController = rememberAnimatedNavController()
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior()
SideEffect {
cScope.launch { _searchQuery.emit("") }
}
Scaffold(
modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection),
containerColor = Color.Transparent,
contentColor = MaterialTheme.colorScheme.onBackground,
bottomBar = { BottomNavBar(page = NAV_MAIN, navController = navController) },
topBar = {
TopBar(
title = stringResource(id = R.string.application_name),
scrollBehavior = scrollBehavior,
) {
ExpandableSearchAction(
query = query,

View File

@ -11,12 +11,14 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.res.stringResource
import androidx.lifecycle.lifecycleScope
import androidx.navigation.NavController
@ -77,6 +79,7 @@ class PrefsActivityX : AppCompatActivity() {
}
) {
val navController = rememberAnimatedNavController()
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior()
var pageTitle: Int? by remember {
mutableStateOf(NavItem.Prefs.title)
}
@ -86,6 +89,7 @@ class PrefsActivityX : AppCompatActivity() {
}
Scaffold(
modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection),
containerColor = Color.Transparent,
contentColor = MaterialTheme.colorScheme.onBackground,
bottomBar = { BottomNavBar(page = NAV_PREFS, navController = navController) },
@ -93,7 +97,8 @@ class PrefsActivityX : AppCompatActivity() {
TopBar(
title = stringResource(
id = pageTitle ?: NavItem.Prefs.title
)
),
scrollBehavior = scrollBehavior
)
}
) { paddingValues ->