From 2ce5dbb31502ff64e6321a1c7b2fa1a75760cffc Mon Sep 17 00:00:00 2001 From: HuanCheng65 <22636177+HuanCheng65@users.noreply.github.com> Date: Sat, 15 Jul 2023 22:54:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=85=A8=E5=B1=80=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E9=A1=B6=E9=83=A8=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tieba/post/arch/BaseComposeActivity.kt | 12 ++++++++++++ .../main/explore/personalized/PersonalizedPage.kt | 2 ++ 2 files changed, 14 insertions(+) diff --git a/app/src/main/java/com/huanchengfly/tieba/post/arch/BaseComposeActivity.kt b/app/src/main/java/com/huanchengfly/tieba/post/arch/BaseComposeActivity.kt index 68b49432..c02eb107 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/arch/BaseComposeActivity.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/arch/BaseComposeActivity.kt @@ -5,6 +5,7 @@ import android.os.Bundle import android.os.Parcelable import android.widget.Toast import androidx.activity.compose.setContent +import androidx.compose.foundation.lazy.LazyListState import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.LaunchedEffect @@ -106,6 +107,8 @@ abstract class BaseComposeActivity : BaseActivity() { is CommonUiEvent.Toast -> { Toast.makeText(this, event.message, event.length).show() } + + else -> {} } } @@ -118,8 +121,17 @@ abstract class BaseComposeActivity : BaseActivity() { sealed interface CommonUiEvent : UiEvent { + object ScrollToTop : CommonUiEvent + data class Toast( val message: CharSequence, val length: Int = android.widget.Toast.LENGTH_SHORT ) : CommonUiEvent + + @Composable + fun BaseViewModel<*, *, *, *>.bindScrollToTopEvent(lazyListState: LazyListState) { + onEvent { + lazyListState.scrollToItem(0, 0) + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/personalized/PersonalizedPage.kt b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/personalized/PersonalizedPage.kt index 9fe22066..5e313af4 100644 --- a/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/personalized/PersonalizedPage.kt +++ b/app/src/main/java/com/huanchengfly/tieba/post/ui/page/main/explore/personalized/PersonalizedPage.kt @@ -49,6 +49,7 @@ import com.huanchengfly.tieba.post.api.models.protos.ThreadInfo import com.huanchengfly.tieba.post.api.models.protos.personalized.DislikeReason import com.huanchengfly.tieba.post.api.models.protos.personalized.ThreadPersonalized import com.huanchengfly.tieba.post.arch.BaseComposeActivity +import com.huanchengfly.tieba.post.arch.CommonUiEvent.ScrollToTop.bindScrollToTopEvent import com.huanchengfly.tieba.post.arch.ImmutableHolder import com.huanchengfly.tieba.post.arch.collectPartialAsState import com.huanchengfly.tieba.post.arch.onEvent @@ -111,6 +112,7 @@ fun PersonalizedPage( onRefresh = { viewModel.send(PersonalizedUiIntent.Refresh) } ) val lazyListState = rememberLazyListState() + viewModel.bindScrollToTopEvent(lazyListState = lazyListState) var refreshCount by remember { mutableStateOf(0) }