Skip to content

Commit f37d45d

Browse files
committed
library: Fix ListPopup windowSize change
1 parent bf14c2b commit f37d45d

File tree

6 files changed

+18
-9
lines changed

6 files changed

+18
-9
lines changed

example/src/commonMain/kotlin/MainPage.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import androidx.compose.runtime.derivedStateOf
2323
import androidx.compose.runtime.getValue
2424
import androidx.compose.runtime.mutableStateOf
2525
import androidx.compose.runtime.remember
26+
import androidx.compose.runtime.rememberUpdatedState
2627
import androidx.compose.runtime.setValue
2728
import androidx.compose.ui.Modifier
2829
import androidx.compose.ui.input.nestedscroll.nestedScroll
@@ -188,6 +189,7 @@ fun MainPage(
188189
)
189190
}
190191

192+
val windowSize by rememberUpdatedState(getWindowSize())
191193

192194
BoxWithConstraints(
193195
modifier = Modifier.fillMaxSize()
@@ -201,7 +203,7 @@ fun MainPage(
201203
)
202204
.overScrollVertical()
203205
.nestedScroll(topAppBarScrollBehavior.nestedScrollConnection)
204-
.height(getWindowSize().height.dp),
206+
.height(windowSize.height.dp),
205207
contentPadding = PaddingValues(top = padding.calculateTopPadding()),
206208
overscrollEffect = null,
207209
) {

example/src/commonMain/kotlin/SecondPage.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import androidx.compose.runtime.getValue
1212
import androidx.compose.runtime.key
1313
import androidx.compose.runtime.mutableStateOf
1414
import androidx.compose.runtime.remember
15+
import androidx.compose.runtime.rememberUpdatedState
1516
import androidx.compose.runtime.saveable.rememberSaveable
1617
import androidx.compose.runtime.setValue
1718
import androidx.compose.ui.Modifier
@@ -47,6 +48,8 @@ fun SecondPage(
4748
}
4849
}
4950

51+
val windowSize by rememberUpdatedState(getWindowSize())
52+
5053
PullToRefresh(
5154
isRefreshing = isRefreshing,
5255
onRefresh = { isRefreshing = true },
@@ -56,7 +59,7 @@ fun SecondPage(
5659
) {
5760
LazyColumn(
5861
modifier = Modifier
59-
.height(getWindowSize().height.dp)
62+
.height(windowSize.height.dp)
6063
.overScrollVertical()
6164
.then(
6265
if (scrollEndHaptic) Modifier.scrollEndHaptic() else Modifier

example/src/commonMain/kotlin/ThirdPage.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,10 @@ import androidx.compose.foundation.layout.padding
1010
import androidx.compose.foundation.lazy.LazyColumn
1111
import androidx.compose.runtime.Composable
1212
import androidx.compose.runtime.MutableState
13+
import androidx.compose.runtime.getValue
1314
import androidx.compose.runtime.mutableStateOf
1415
import androidx.compose.runtime.remember
16+
import androidx.compose.runtime.rememberUpdatedState
1517
import androidx.compose.ui.Modifier
1618
import androidx.compose.ui.input.nestedscroll.nestedScroll
1719
import androidx.compose.ui.platform.LocalUriHandler
@@ -75,14 +77,15 @@ fun ThirdPage(
7577
val floatingToolbarOrientationOptions = remember { listOf("Horizontal", "Vertical") }
7678
val fabPositionOptions = remember { listOf("Start", "Center", "End", "EndOverlay") }
7779
val colorModeOptions = remember { listOf("System", "Light", "Dark") }
80+
val windowSize by rememberUpdatedState(getWindowSize())
7881
LazyColumn(
7982
modifier = Modifier
8083
.then(
8184
if (scrollEndHaptic) Modifier.scrollEndHaptic() else Modifier
8285
)
8386
.overScrollVertical()
8487
.nestedScroll(topAppBarScrollBehavior.nestedScrollConnection)
85-
.height(getWindowSize().height.dp),
88+
.height(windowSize.height.dp),
8689
contentPadding = PaddingValues(top = padding.calculateTopPadding()),
8790
overscrollEffect = null
8891
) {

iosApp/iosApp/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<key>CFBundleShortVersionString</key>
1818
<string>1.0.4</string>
1919
<key>CFBundleVersion</key>
20-
<string>496</string>
20+
<string>498</string>
2121
<key>LSRequiresIPhoneOS</key>
2222
<true/>
2323
<key>CADisableMinimumFrameDurationOnPhone</key>

miuix/src/commonMain/kotlin/top/yukonga/miuix/kmp/basic/ListPopup.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import top.yukonga.miuix.kmp.theme.MiuixTheme
4343
import top.yukonga.miuix.kmp.utils.BackHandler
4444
import top.yukonga.miuix.kmp.utils.MiuixPopupUtils.Companion.PopupLayout
4545
import top.yukonga.miuix.kmp.utils.SmoothRoundedCornerShape
46+
import top.yukonga.miuix.kmp.utils.WindowSize
4647
import top.yukonga.miuix.kmp.utils.getWindowSize
4748
import kotlin.math.min
4849

@@ -78,8 +79,7 @@ fun ListPopup(
7879
val density = LocalDensity.current
7980
val layoutDirection = LocalLayoutDirection.current
8081

81-
val currentWindowSize = getWindowSize()
82-
var windowSize by remember { mutableStateOf(IntSize(currentWindowSize.width, currentWindowSize.height)) }
82+
val windowSize by rememberUpdatedState(getWindowSize())
8383
var parentBounds by remember { mutableStateOf(IntRect.Zero) }
8484

8585
Layout(
@@ -133,7 +133,7 @@ fun ListPopup(
133133
)
134134
}
135135

136-
if (parentBounds != IntRect.Zero && windowSize != IntSize.Zero) {
136+
if (parentBounds != IntRect.Zero && windowSize != WindowSize(0, 0)) {
137137
PopupLayout(
138138
visible = show,
139139
enableWindowDim = enableWindowDim,

miuix/src/commonMain/kotlin/top/yukonga/miuix/kmp/extra/SuperDialog.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import androidx.compose.runtime.MutableState
1818
import androidx.compose.runtime.derivedStateOf
1919
import androidx.compose.runtime.getValue
2020
import androidx.compose.runtime.remember
21+
import androidx.compose.runtime.rememberUpdatedState
2122
import androidx.compose.ui.Alignment
2223
import androidx.compose.ui.Modifier
2324
import androidx.compose.ui.draw.clip
@@ -108,8 +109,8 @@ private fun SuperDialogContent(
108109
content: @Composable () -> Unit
109110
) {
110111
val density = LocalDensity.current
111-
val windowSize = getWindowSize()
112-
val roundedCorner = getRoundedCorner()
112+
val windowSize by rememberUpdatedState(getWindowSize())
113+
val roundedCorner by rememberUpdatedState(getRoundedCorner())
113114

114115
val windowWidth by remember(windowSize, density) {
115116
derivedStateOf { windowSize.width.dp / density.density }

0 commit comments

Comments
 (0)