mirror of
https://github.com/Aviortheking/Neo-Store.git
synced 2025-04-23 03:12:15 +00:00
Add: Scrolling TopBar
This commit is contained in:
parent
a7e5772310
commit
376db653ee
@ -12,11 +12,13 @@ import androidx.compose.foundation.layout.padding
|
|||||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Scaffold
|
import androidx.compose.material3.Scaffold
|
||||||
|
import androidx.compose.material3.TopAppBarDefaults
|
||||||
import androidx.compose.runtime.SideEffect
|
import androidx.compose.runtime.SideEffect
|
||||||
import androidx.compose.runtime.collectAsState
|
import androidx.compose.runtime.collectAsState
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
|
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import com.google.accompanist.navigation.animation.rememberAnimatedNavController
|
import com.google.accompanist.navigation.animation.rememberAnimatedNavController
|
||||||
@ -100,18 +102,21 @@ class MainActivityX : AppCompatActivity() {
|
|||||||
) {
|
) {
|
||||||
val query by searchQuery.collectAsState(initial = "")
|
val query by searchQuery.collectAsState(initial = "")
|
||||||
val navController = rememberAnimatedNavController()
|
val navController = rememberAnimatedNavController()
|
||||||
|
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior()
|
||||||
|
|
||||||
SideEffect {
|
SideEffect {
|
||||||
cScope.launch { _searchQuery.emit("") }
|
cScope.launch { _searchQuery.emit("") }
|
||||||
}
|
}
|
||||||
|
|
||||||
Scaffold(
|
Scaffold(
|
||||||
|
modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection),
|
||||||
containerColor = Color.Transparent,
|
containerColor = Color.Transparent,
|
||||||
contentColor = MaterialTheme.colorScheme.onBackground,
|
contentColor = MaterialTheme.colorScheme.onBackground,
|
||||||
bottomBar = { BottomNavBar(page = NAV_MAIN, navController = navController) },
|
bottomBar = { BottomNavBar(page = NAV_MAIN, navController = navController) },
|
||||||
topBar = {
|
topBar = {
|
||||||
TopBar(
|
TopBar(
|
||||||
title = stringResource(id = R.string.application_name),
|
title = stringResource(id = R.string.application_name),
|
||||||
|
scrollBehavior = scrollBehavior,
|
||||||
) {
|
) {
|
||||||
ExpandableSearchAction(
|
ExpandableSearchAction(
|
||||||
query = query,
|
query = query,
|
||||||
|
@ -11,12 +11,14 @@ import androidx.compose.foundation.layout.padding
|
|||||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Scaffold
|
import androidx.compose.material3.Scaffold
|
||||||
|
import androidx.compose.material3.TopAppBarDefaults
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.runtime.setValue
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
|
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.navigation.NavController
|
import androidx.navigation.NavController
|
||||||
@ -77,6 +79,7 @@ class PrefsActivityX : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
val navController = rememberAnimatedNavController()
|
val navController = rememberAnimatedNavController()
|
||||||
|
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior()
|
||||||
var pageTitle: Int? by remember {
|
var pageTitle: Int? by remember {
|
||||||
mutableStateOf(NavItem.Prefs.title)
|
mutableStateOf(NavItem.Prefs.title)
|
||||||
}
|
}
|
||||||
@ -86,6 +89,7 @@ class PrefsActivityX : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Scaffold(
|
Scaffold(
|
||||||
|
modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection),
|
||||||
containerColor = Color.Transparent,
|
containerColor = Color.Transparent,
|
||||||
contentColor = MaterialTheme.colorScheme.onBackground,
|
contentColor = MaterialTheme.colorScheme.onBackground,
|
||||||
bottomBar = { BottomNavBar(page = NAV_PREFS, navController = navController) },
|
bottomBar = { BottomNavBar(page = NAV_PREFS, navController = navController) },
|
||||||
@ -93,7 +97,8 @@ class PrefsActivityX : AppCompatActivity() {
|
|||||||
TopBar(
|
TopBar(
|
||||||
title = stringResource(
|
title = stringResource(
|
||||||
id = pageTitle ?: NavItem.Prefs.title
|
id = pageTitle ?: NavItem.Prefs.title
|
||||||
)
|
),
|
||||||
|
scrollBehavior = scrollBehavior
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
) { paddingValues ->
|
) { paddingValues ->
|
||||||
|
Loading…
x
Reference in New Issue
Block a user