From 41521cca950d260e12653eb4fc6b03ab7db9efae Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Fri, 30 Oct 2020 14:16:09 +0530 Subject: [PATCH] Persist hottest list scroll state across navigation events Signed-off-by: Harsh Shandilya --- app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt | 3 +++ app/src/main/java/dev/msfjarvis/lobsters/ui/HottestPosts.kt | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt b/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt index 02cc51f8..9195be14 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/MainActivity.kt @@ -3,6 +3,7 @@ package dev.msfjarvis.lobsters import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.compose.foundation.Text +import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.material.BottomNavigation import androidx.compose.material.BottomNavigationItem import androidx.compose.material.Scaffold @@ -85,10 +86,12 @@ fun LobstersApp() { } }, ) { + val hottestPostsListState = rememberLazyListState() NavHost(navController, startDestination = Destination.Hottest.route) { composable(Destination.Hottest.route) { HottestPosts( posts = hottestPosts, + listState = hottestPostsListState, saveAction = viewModel::savePost, overscrollAction = viewModel::getMorePosts, ) diff --git a/app/src/main/java/dev/msfjarvis/lobsters/ui/HottestPosts.kt b/app/src/main/java/dev/msfjarvis/lobsters/ui/HottestPosts.kt index a123a815..e5e4fc27 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/ui/HottestPosts.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/ui/HottestPosts.kt @@ -2,7 +2,7 @@ package dev.msfjarvis.lobsters.ui import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumnForIndexed -import androidx.compose.foundation.lazy.rememberLazyListState +import androidx.compose.foundation.lazy.LazyListState import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp @@ -12,11 +12,11 @@ import dev.msfjarvis.lobsters.urllauncher.UrlLauncherAmbient @Composable fun HottestPosts( posts: List, + listState: LazyListState, modifier: Modifier = Modifier, saveAction: (LobstersPost) -> Unit, overscrollAction: () -> Unit, ) { - val listState = rememberLazyListState() val urlLauncher = UrlLauncherAmbient.current if (posts.isEmpty()) {