Add: Collapsing TopBar to the main pages

This commit is contained in:
machiav3lli 2022-06-26 02:05:42 +02:00
parent e4892eb44f
commit d43610d92d
3 changed files with 36 additions and 3 deletions

View File

@ -17,10 +17,13 @@ import androidx.compose.material.icons.rounded.Sync
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.material3.rememberTopAppBarScrollState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.ui.Modifier
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.res.stringResource
import com.looker.droidify.R
@ -71,6 +74,10 @@ class ExploreFragment : MainNavFragmentX() {
val searchQuery by viewModel.searchQuery.observeAsState("")
val favorites by mainActivityX.db.extrasDao.favoritesLive.observeAsState(emptyArray())
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(
rememberTopAppBarScrollState()
) { true }
AppTheme(
darkTheme = when (Preferences[Preferences.Key.Theme]) {
is Preferences.Theme.System -> isSystemInDarkTheme()
@ -80,8 +87,12 @@ class ExploreFragment : MainNavFragmentX() {
) {
Scaffold(
// TODO add the topBar to the activity instead of the fragments
modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection),
topBar = {
TopBar(title = stringResource(id = R.string.application_name)) {
TopBar(
title = stringResource(id = R.string.application_name),
scrollBehavior = scrollBehavior
) {
ExpandableSearchAction(
query = searchQuery.orEmpty(),
onClose = {

View File

@ -28,6 +28,8 @@ import androidx.compose.material3.Scaffold
import androidx.compose.material3.SuggestionChip
import androidx.compose.material3.SuggestionChipDefaults
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.material3.rememberTopAppBarScrollState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.livedata.observeAsState
@ -36,6 +38,7 @@ import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
@ -89,6 +92,10 @@ class InstalledFragment : MainNavFragmentX() {
val searchQuery by viewModel.searchQuery.observeAsState("")
val favorites by mainActivityX.db.extrasDao.favoritesLive.observeAsState(emptyArray())
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(
rememberTopAppBarScrollState()
) { true }
AppTheme(
darkTheme = when (Preferences[Preferences.Key.Theme]) {
is Preferences.Theme.System -> isSystemInDarkTheme()
@ -98,8 +105,12 @@ class InstalledFragment : MainNavFragmentX() {
) {
Scaffold(
// TODO add the topBar to the activity instead of the fragments
modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection),
topBar = {
TopBar(title = stringResource(id = R.string.application_name)) {
TopBar(
title = stringResource(id = R.string.application_name),
scrollBehavior = scrollBehavior
) {
ExpandableSearchAction(
query = searchQuery.orEmpty(),
onClose = {

View File

@ -23,11 +23,14 @@ import androidx.compose.material3.Scaffold
import androidx.compose.material3.SuggestionChip
import androidx.compose.material3.SuggestionChipDefaults
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.material3.rememberTopAppBarScrollState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
@ -79,6 +82,10 @@ class LatestFragment : MainNavFragmentX() {
val searchQuery by viewModel.searchQuery.observeAsState("")
val favorites by mainActivityX.db.extrasDao.favoritesLive.observeAsState(emptyArray())
val scrollBehavior = TopAppBarDefaults.enterAlwaysScrollBehavior(
rememberTopAppBarScrollState()
) { true }
AppTheme(
darkTheme = when (Preferences[Preferences.Key.Theme]) {
is Preferences.Theme.System -> isSystemInDarkTheme()
@ -88,8 +95,12 @@ class LatestFragment : MainNavFragmentX() {
) {
Scaffold(
// TODO add the topBar to the activity instead of the fragments
modifier = Modifier.nestedScroll(scrollBehavior.nestedScrollConnection),
topBar = {
TopBar(title = stringResource(id = R.string.application_name)) {
TopBar(
title = stringResource(id = R.string.application_name),
scrollBehavior = scrollBehavior
) {
ExpandableSearchAction(
query = searchQuery.orEmpty(),
onClose = {