Jetpack komponieren Dialog mit Vollbildschirmen erstreckt sich über den Bildschirm einige Geräte über den Bildschirm hinAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 Jetpack komponieren Dialog mit Vollbildschirmen erstreckt sich über den Bildschirm einige Geräte über den Bildschirm hin

Post by Anonymous »

Ich versuche zu verstehen, was dieses Verhalten in einem Dialogfeld "Vollbild" verursacht. Wenn ich auf einem Pixel6 -Emulator teste, ist alles gut. Auch in einem Android10. Auf dem Pixel7 nicht so sehr. Beide Bilder sind unten. Könnte eine Versionssituation sein, aber ich möchte immer noch herausfinden, wie ich hier vorgehen soll. < /P>
Ich verwende die letzte stabile Version für alles in dieser App. src = "https://i.static.net/lqixziw9m.png"/>
hier ist der komponierende Code.

Code: Select all

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun ListTipListScreen(
viewModel: MainScreenViewModel,
onDismissRequest: () -> Unit,
listId: Int,
onBackClick: () -> Unit,
) {
val list = viewModel
.getListById(listId)
.collectAsState(null)

/** Get the list of tips for the List collected on variable "list" above */
val listTipList by viewModel
.getAllTipsFromList(listId)
.collectAsState(emptyList())

/** Share the list of tips using [shareTextWithApps] */
val context = LocalContext.current

Dialog(
onDismissRequest = { onDismissRequest() },
properties = DialogProperties(
usePlatformDefaultWidth = false,
dismissOnBackPress = true,
decorFitsSystemWindows = false,
dismissOnClickOutside = false
)
) {
Scaffold(
topBar = {
CenterAlignedTopAppBar(
colors = TopAppBarDefaults.centerAlignedTopAppBarColors(
containerColor = MaterialTheme.colorScheme.surfaceTint.copy(alpha = 0.1f),
),
title = { list.value?.let {
Text(text = it.name) }
},
navigationIcon = {
IconButton(
onClick = onBackClick
) {
Icon(
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
contentDescription = stringResource(R.string.back)
)
}
}
)
},

/** FAB to add a final tip value without calculation, to the current List
* and visualized inside [ListTipListScreen] *
**/
floatingActionButton = {
FabAdd(
onClick = { viewModel.updateShowAddTipValueToListDialog(true) },
contentDescription = stringResource(R.string.add_tip_to_list)
)
},
floatingActionButtonPosition = FabPosition.End
) { innerPadding ->
Box(
modifier = Modifier
.fillMaxSize()
.padding(innerPadding)
) {
Column(
modifier = Modifier
.padding(dimensionResource(R.dimen.padding_mid))
) {
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically
) {
Text(
text = stringResource(R.string.tip_list_title),
style = MaterialTheme.typography.titleLarge,
modifier = Modifier.padding(dimensionResource(R.dimen.padding_sml))
)

/**
* Button to [shareTextWithApps].  Sharing list of Tips from List
*/
Icon(
modifier = Modifier
.size(24.dp)
.clickable {
shareTextWithApps(
title = list.value?.name!!,
content = tipListToString(listTipList),
context = context
)
},
imageVector = Icons.Default.Share,
tint = MaterialTheme.colorScheme.primary,
contentDescription = stringResource(R.string.share_tip_list)
)
}
HorizontalDivider(
modifier = Modifier
.padding(bottom = dimensionResource(R.dimen.padding_mid))
)
LazyColumn(
userScrollEnabled = true
) {

/**
* Display rows of tips from specific List(List).
*/
itemsIndexed(listTipList) { _, tip ->
ListItemComponent(
overLineContent = { Text(text = tip.dateCreated) },
item = tip,
getName = { tip.tipAmount },
mainTrailItemInfo = { },
listItemTrailingIcon = Icons.Default.DeleteForever,
trailingIconContentDescription = stringResource(R.string.delete),
onClickTrailingIcon = { viewModel.deleteTip(tip) },
onClickLabel = context.getString(R.string.tip_will_be_deleted),
modifier = Modifier.height(70.dp)
)
}
}
}

/** Conditional attached to [FabAdd] composable above to
* show dialog when clicked
*/
if(viewModel.showAddTipValueToListDialog) {
AddTipValueToListDialog(
viewModel = viewModel,
onSaveRequest = {
viewModel.viewModelScope.launch {
viewModel.insertTipValueToList(listId)
viewModel.updateShowAddTipValueToListDialog(false)
}
}
)
}
}
}
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post