make dropdown menus scrollable

fix #1906
This commit is contained in:
MM20
2026-08-30 16:53:22 +02:00
parent 9b8b083515
commit 4dff3b5ee6
6 changed files with 23 additions and 4 deletions

View File

@@ -13,6 +13,8 @@ import androidx.compose.foundation.lazy.grid.GridCells
import androidx.compose.foundation.lazy.grid.GridItemSpan
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
import androidx.compose.foundation.lazy.grid.items
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.CircularProgressIndicator
@@ -185,7 +187,8 @@ fun IconPicker(
)
}
DropdownMenuPopup(
modifier = Modifier
.verticalScroll(rememberScrollState()),
expanded = showIconPackFilter,
onDismissRequest = { showIconPackFilter = false }
) {

View File

@@ -15,6 +15,7 @@ import androidx.compose.foundation.layout.size
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.text.BasicTextField
import androidx.compose.foundation.text.KeyboardActions
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.DropdownMenuGroup
import androidx.compose.material3.DropdownMenuItem
import androidx.compose.material3.DropdownMenuPopup
@@ -191,6 +192,8 @@ fun OutlinedTagsInputField(
if (completions.isNotEmpty()) {
Box {
DropdownMenuPopup(
modifier = Modifier
.verticalScroll(rememberScrollState()),
expanded = true,
onDismissRequest = { completions = emptyList() },
properties = PopupProperties(focusable = false)

View File

@@ -8,7 +8,8 @@ import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.offset
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.material3.DropdownMenu
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.DropdownMenuGroup
import androidx.compose.material3.DropdownMenuItem
import androidx.compose.material3.DropdownMenuPopup
@@ -67,10 +68,12 @@ fun Icons(actions: List<ToolbarAction>, slots: Int) {
DropdownMenuPopup(
expanded = showMenu,
onDismissRequest = { showMenu = false },
modifier = Modifier.animateContentSize()
modifier = Modifier
.verticalScroll(rememberScrollState()),
) {
DropdownMenuGroup(
shapes = MenuDefaults.groupShapes()
shapes = MenuDefaults.groupShapes(),
modifier = Modifier.animateContentSize()
) {
OverflowMenuItems(items = actions.subList(slots - 1, actions.size)) {
showMenu = false

View File

@@ -392,6 +392,9 @@ fun ColumnScope.ConfigureFavoritesWidget(
Text(stringResource(R.string.select_tag))
}
DropdownMenuPopup(
modifier = Modifier
.verticalScroll(rememberScrollState())
.padding(vertical = 8.dp),
expanded = showAddMenu,
onDismissRequest = { showAddMenu = false }) {
if (availableTags.isNotEmpty()) {

View File

@@ -28,6 +28,8 @@ import androidx.compose.foundation.lazy.grid.GridItemSpan
import androidx.compose.foundation.lazy.grid.rememberLazyGridState
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.DropdownMenuGroup
import androidx.compose.material3.DropdownMenuItem
@@ -494,6 +496,7 @@ fun ReorderFavoritesGrid(viewModel: EditFavoritesSheetVM, paddingValues: Padding
)
}
DropdownMenuPopup(
modifier = Modifier.verticalScroll(rememberScrollState()),
expanded = showAddMenu,
onDismissRequest = { showAddMenu = false }) {
if (availableTags.isNotEmpty()) {

View File

@@ -19,6 +19,8 @@ import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.DropdownMenuGroup
import androidx.compose.material3.DropdownMenuItem
import androidx.compose.material3.DropdownMenuPopup
@@ -110,6 +112,8 @@ fun CalendarWidget(
)
}
DropdownMenuPopup(
modifier = Modifier
.verticalScroll(rememberScrollState()),
expanded = showDropdown,
onDismissRequest = { showDropdown = false }) {
val availableDates = viewModel.availableDates