@@ -4,9 +4,11 @@ package com.linuxcommandlibrary.app.ui.screens.commandlist
44
55import androidx.compose.foundation.background
66import androidx.compose.foundation.clickable
7+ import androidx.compose.foundation.layout.Box
78import androidx.compose.foundation.layout.fillMaxSize
89import androidx.compose.foundation.lazy.LazyColumn
910import androidx.compose.foundation.lazy.items
11+ import androidx.compose.foundation.lazy.rememberLazyListState
1012import androidx.compose.material.ExperimentalMaterialApi
1113import androidx.compose.material.Icon
1214import androidx.compose.material.ListItem
@@ -15,11 +17,13 @@ import androidx.compose.runtime.Composable
1517import androidx.compose.runtime.collectAsState
1618import androidx.compose.runtime.getValue
1719import androidx.compose.runtime.remember
20+ import androidx.compose.ui.Alignment
1821import androidx.compose.ui.Modifier
1922import androidx.compose.ui.input.pointer.PointerIcon
2023import androidx.compose.ui.input.pointer.pointerHoverIcon
2124import com.linuxcommandlibrary.app.data.CommandInfo
2225import com.linuxcommandlibrary.app.ui.composables.AppIcon
26+ import com.linuxcommandlibrary.app.ui.composables.FastScrollBar
2327import com.linuxcommandlibrary.app.ui.composables.HighlightedText
2428import com.linuxcommandlibrary.app.ui.composables.rememberIconPainter
2529import com.linuxcommandlibrary.app.ui.theme.LocalCustomColors
@@ -31,23 +35,35 @@ fun CommandListScreen(
3135) {
3236 val commands by viewModel.commands.collectAsState()
3337 val bookmarkedNames by viewModel.bookmarkedNames.collectAsState()
38+ val listState = rememberLazyListState()
3439
35- LazyColumn (
40+ Box (
3641 modifier = Modifier
3742 .background(MaterialTheme .colors.background)
3843 .fillMaxSize(),
3944 ) {
40- items(
41- items = commands,
42- key = { it.id },
43- contentType = { " command_list_item" },
44- ) { command ->
45- CommandListItem (
46- command = command,
47- onNavigate = onNavigate,
48- isBookmarked = command.name in bookmarkedNames,
49- )
45+ LazyColumn (
46+ state = listState,
47+ modifier = Modifier .fillMaxSize(),
48+ ) {
49+ items(
50+ items = commands,
51+ key = { it.id },
52+ contentType = { " command_list_item" },
53+ ) { command ->
54+ CommandListItem (
55+ command = command,
56+ onNavigate = onNavigate,
57+ isBookmarked = command.name in bookmarkedNames,
58+ )
59+ }
5060 }
61+
62+ FastScrollBar (
63+ listState = listState,
64+ itemCount = commands.size,
65+ modifier = Modifier .align(Alignment .CenterEnd ),
66+ )
5167 }
5268}
5369
0 commit comments