Wie ändere ich die Höhe von DropdownMenuItem?Android

Forum für diejenigen, die für Android programmieren
Anonymous
 Wie ändere ich die Höhe von DropdownMenuItem?

Post by Anonymous »

Ich erstelle ein TextField mit automatischer Vervollständigung mithilfe von ExposedDropdownMenuBox in Jetpack Compose. Ich verwende eine benutzerdefinierte Komponente, SpotifyTextField, die eine feste Höhe von 48.dp hat.
Mein Ziel ist es, dass jedes DropdownMenuItem im begleitenden ExposedDropdownMenu genau dieser Höhe von 48.dp entspricht, um einen konsistenten visuellen Abstand zu gewährleisten.
Obwohl versucht wurde, das contentPadding zu ändern und Modifier.size anzuwenden, erscheinen die DropdownMenuItem-Komponenten immer noch größer als 48.dp.

Code: Select all

@Composable
fun AutoCompleteTextFields(
modifier: Modifier = Modifier,
value: TextFieldValue,
onValueChange: (TextFieldValue) -> Unit,
genderList: List = listOf("Female", "Male"),
) {
var isExpanded by remember { mutableStateOf(false) }

Column(
modifier = modifier.fillMaxWidth(),
horizontalAlignment = Alignment.CenterHorizontally,
) {
ExposedDropdownMenuBox(
expanded = isExpanded,
onExpandedChange = {
isExpanded = it
},
) {
Row(
modifier = Modifier.fillMaxWidth(),
) {
SpotifyTextField(
value = value,
onValueChange = {
onValueChange(it.copy(selection = TextRange(it.text.length)))
isExpanded = true
},
trailingIcon = {
ExposedDropdownMenuDefaults.TrailingIcon(expanded = isExpanded)
},
modifier = Modifier.menuAnchor(ExposedDropdownMenuAnchorType.SecondaryEditable),
)
}

ExposedDropdownMenu(
expanded = isExpanded,
onDismissRequest = { isExpanded = false },
matchAnchorWidth = true,
containerColor = MaterialTheme.colorScheme.tertiary,
shape = RoundedCornerShape(4.dp),
) {
filteredList.forEachIndexed { index, item ->
DropdownMenuItem(
text = {
Text(
item,
style =
MaterialTheme.typography.bodyLarge.copy(
color = Color.White,
),
)
},
onClick = {
onValueChange(
TextFieldValue(
filteredList[index],
TextRange(filteredList[index].length),
),
)
isExpanded = false
},
contentPadding = PaddingValues(horizontal = 8.dp, vertical = 0.dp),
)
}
}
}
}
das ist mein aktuelles Ergebnis.
Image

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post