@@ -15,7 +15,9 @@ import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
15
15
import androidx.compose.foundation.lazy.grid.items
16
16
import androidx.compose.foundation.lazy.grid.rememberLazyGridState
17
17
import androidx.compose.foundation.lazy.items
18
+ import androidx.compose.foundation.lazy.rememberLazyListState
18
19
import androidx.compose.runtime.Composable
20
+ import androidx.compose.runtime.LaunchedEffect
19
21
import androidx.compose.runtime.collectAsState
20
22
import androidx.compose.runtime.getValue
21
23
import androidx.compose.ui.Alignment
@@ -27,8 +29,10 @@ import bilibili.app.dynamic.v2.DynamicGRPC
27
29
import bilibili.app.dynamic.v2.DynamicItem
28
30
import cn.a10miaomiao.bilimiao.compose.common.addPaddingValues
29
31
import cn.a10miaomiao.bilimiao.compose.common.diViewModel
32
+ import cn.a10miaomiao.bilimiao.compose.common.emitter.EmitterAction
30
33
import cn.a10miaomiao.bilimiao.compose.common.entity.FlowPaginationInfo
31
34
import cn.a10miaomiao.bilimiao.compose.common.localContainerView
35
+ import cn.a10miaomiao.bilimiao.compose.common.localEmitter
32
36
import cn.a10miaomiao.bilimiao.compose.common.navigation.PageNavigation
33
37
import cn.a10miaomiao.bilimiao.compose.common.toPaddingValues
34
38
import cn.a10miaomiao.bilimiao.compose.components.dyanmic.DynamicItemCard
@@ -161,26 +165,26 @@ fun DynamicAllListContent() {
161
165
val listFail by viewModel.list.fail.collectAsState()
162
166
val isRefreshing by viewModel.isRefreshing.collectAsState()
163
167
164
- val listState = rememberLazyGridState()
165
- // LaunchedEffect(Unit) {
166
- // action.collect {
167
- // when (it) {
168
- // is HomePageAction.DoubleClickTab -> {
169
- // if (listState.firstVisibleItemIndex == 0) {
170
- // viewModel.refresh()
171
- // } else {
172
- // listState.animateScrollToItem(0)
173
- // }
174
- // }
175
- // }
176
- // }
177
- // }
168
+ val listState = rememberLazyListState()
169
+ val emitter = localEmitter()
170
+ LaunchedEffect (Unit ) {
171
+ emitter.collectAction<EmitterAction .DoubleClickTab > {
172
+ if (it.tab == " dynamic.all" ) {
173
+ if (listState.firstVisibleItemIndex == 0 ) {
174
+ viewModel.refresh()
175
+ } else {
176
+ listState.animateScrollToItem(0 )
177
+ }
178
+ }
179
+ }
180
+ }
178
181
179
182
SwipeToRefresh (
180
183
refreshing = isRefreshing,
181
184
onRefresh = { viewModel.refresh() },
182
185
) {
183
186
LazyColumn (
187
+ state = listState,
184
188
modifier = Modifier .fillMaxSize(),
185
189
contentPadding = windowInsets.addPaddingValues(
186
190
addTop = - windowInsets.topDp.dp + 10 .dp,
0 commit comments