TextField с шириной обводки с использованием BasicTextFieldAndroid

Форум для тех, кто программирует под Android
Anonymous
TextField с шириной обводки с использованием BasicTextField

Сообщение Anonymous »

Я попытался создать TextField, используя переменную ширину и цвет обводки, используя OutlinedTextField и TextField, а затем смог сделать это с помощью BasicTextField следующим простым способом:
@Composable
fun ShowEditText(text: String, onValueChange: (String) -> Unit, enabled: Boolean = true)
{
var clStroke by remember { mutableStateOf(clEdNormalStroke) }
var clText by remember { mutableStateOf(clEdEnText) }
var dimStroke by remember { mutableStateOf(dimEdNormalStroke) }

BasicTextField(
value = text,
onValueChange = onValueChange,
modifier = Modifier.fillMaxWidth()
.onFocusChanged {
dimStroke = if(it.hasFocus) dimEdFocusStroke else dimEdNormalStroke
clText = if(enabled) clEdEnText else clEdDisText
clStroke = if(enabled) { if(it.hasFocus) clEdFocusStroke else clEdNormalStroke } else { clEdDisStroke }
}.focusable(),
enabled = enabled,
textStyle = TextStyle(
fontSize = dimTextFont,
fontWeight = FontWeight.Bold,
color = clText
),
cursorBrush = edCursorBrush,
singleLine = true,
decorationBox = { innerTextField ->
Row(Modifier.fillMaxWidth()
.background(clEdEnBg, controlShape)
.border(dimStroke, clStroke, controlShape)
.padding(16.dp, 12.dp)
) {
innerTextField()
}
}
)
}


Подробнее здесь: https://stackoverflow.com/questions/792 ... ctextfield

Вернуться в «Android»