Pull down scaffold: fix search bar raising level
This commit is contained in:
parent
9b7263f01e
commit
51636a064c
@ -96,7 +96,7 @@ fun PullDownScaffold(
|
|||||||
val widgetsScrollState = rememberScrollState()
|
val widgetsScrollState = rememberScrollState()
|
||||||
val searchState = rememberLazyListState()
|
val searchState = rememberLazyListState()
|
||||||
|
|
||||||
val isSearchAtStart by remember {
|
val isSearchAtTop by remember {
|
||||||
derivedStateOf {
|
derivedStateOf {
|
||||||
if (reverseSearchResults) {
|
if (reverseSearchResults) {
|
||||||
val lastItem =
|
val lastItem =
|
||||||
@ -108,7 +108,7 @@ fun PullDownScaffold(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val isSearchAtEnd by remember {
|
val isSearchAtBottom by remember {
|
||||||
derivedStateOf {
|
derivedStateOf {
|
||||||
if (reverseSearchResults) {
|
if (reverseSearchResults) {
|
||||||
searchState.firstVisibleItemIndex == 0 && searchState.firstVisibleItemScrollOffset == 0
|
searchState.firstVisibleItemIndex == 0 && searchState.firstVisibleItemScrollOffset == 0
|
||||||
@ -139,7 +139,7 @@ fun PullDownScaffold(
|
|||||||
val showStatusBarScrim by remember {
|
val showStatusBarScrim by remember {
|
||||||
derivedStateOf {
|
derivedStateOf {
|
||||||
if (isSearchOpen) {
|
if (isSearchOpen) {
|
||||||
!isSearchAtStart
|
!isSearchAtTop
|
||||||
} else {
|
} else {
|
||||||
widgetsScrollState.value > 0
|
widgetsScrollState.value > 0
|
||||||
}
|
}
|
||||||
@ -148,7 +148,7 @@ fun PullDownScaffold(
|
|||||||
val showNavBarScrim by remember {
|
val showNavBarScrim by remember {
|
||||||
derivedStateOf {
|
derivedStateOf {
|
||||||
if (isSearchOpen) {
|
if (isSearchOpen) {
|
||||||
!isSearchAtEnd
|
!isSearchAtBottom
|
||||||
} else {
|
} else {
|
||||||
(widgetsScrollState.value > 0 || !fillClockHeight) && widgetsScrollState.value < widgetsScrollState.maxValue
|
(widgetsScrollState.value > 0 || !fillClockHeight) && widgetsScrollState.value < widgetsScrollState.maxValue
|
||||||
}
|
}
|
||||||
@ -250,11 +250,11 @@ fun PullDownScaffold(
|
|||||||
keyboardController?.hide()
|
keyboardController?.hide()
|
||||||
}
|
}
|
||||||
val canPullDown = if (isSearchOpen) {
|
val canPullDown = if (isSearchOpen) {
|
||||||
isSearchAtStart
|
isSearchAtTop
|
||||||
} else {
|
} else {
|
||||||
isWidgetsAtStart
|
isWidgetsAtStart
|
||||||
}
|
}
|
||||||
val canPullUp = isSearchOpen && isSearchAtEnd
|
val canPullUp = isSearchOpen && isSearchAtBottom
|
||||||
|
|
||||||
val consumed = when {
|
val consumed = when {
|
||||||
canPullUp && available.y < 0 || offsetY.value < 0 -> {
|
canPullUp && available.y < 0 || offsetY.value < 0 -> {
|
||||||
@ -434,10 +434,10 @@ fun PullDownScaffold(
|
|||||||
derivedStateOf {
|
derivedStateOf {
|
||||||
when {
|
when {
|
||||||
offsetY.value != 0f -> SearchBarLevel.Raised
|
offsetY.value != 0f -> SearchBarLevel.Raised
|
||||||
isSearchOpen && isSearchAtStart -> SearchBarLevel.Active
|
!isSearchOpen && isWidgetsAtStart && fillClockHeight -> SearchBarLevel.Resting
|
||||||
isSearchOpen && !isSearchAtStart -> SearchBarLevel.Raised
|
isSearchOpen && isSearchAtTop && !bottomSearchBar -> SearchBarLevel.Active
|
||||||
!isWidgetsAtStart -> SearchBarLevel.Raised
|
isSearchOpen && isSearchAtBottom && bottomSearchBar -> SearchBarLevel.Active
|
||||||
else -> SearchBarLevel.Resting
|
else -> SearchBarLevel.Raised
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user