XG6YSY4RBVS7DANWFVVP7LNPDTSY6KZRRW4MXCDB2PTU3U2LHDDQC val scrollState = rememberScrollState()// Auto-scroll to the end whenever the formula changesLaunchedEffect(formula) {scrollState.scrollTo(scrollState.maxValue)}val fullExpression =fun(): Boolean {if (formula.isEmpty()){return false}if (formula.last().isDigit()) {return true}return false}
Text(text = formula,color = Color.White,textAlign = TextAlign.Center,fontSize = 30.sp,modifier = Modifier.fillMaxWidth(),softWrap = false
Box(modifier = Modifier.fillMaxWidth(0.7f).horizontalScroll(scrollState) // allow horizontal growth.clipToBounds(), // clip overflowcontentAlignment = Alignment.CenterEnd,) {Text(text = formula,color = Color.White,fontSize = 30.sp,maxLines = 1,softWrap = false,overflow = TextOverflow.Clip)}Icon(imageVector = Icons.Default.ArrowBack,contentDescription = "delete input",modifier = Modifier.padding(start = 8.dp).clickable { formula=formula.dropLast(1) }
Button(onClick = { showResult = true }, modifier = buttonMod) { Text("=") }Button(onClick = { formula += "÷" }, modifier = buttonMod) { Text("÷") }
Button(onClick = { showResult = true }, modifier = buttonMod, enabled = fullExpression()) { Text("=") }Button(onClick = { formula += "÷" }, modifier = buttonMod, enabled = fullExpression()) { Text("÷") }