You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
5.4 KiB
123 lines
5.4 KiB
package org.jetbrains.compose.resources.demo.shared |
|
|
|
import androidx.compose.foundation.layout.* |
|
import androidx.compose.foundation.rememberScrollState |
|
import androidx.compose.foundation.shape.RoundedCornerShape |
|
import androidx.compose.foundation.verticalScroll |
|
import androidx.compose.material.icons.Icons |
|
import androidx.compose.material.icons.filled.Add |
|
import androidx.compose.material3.* |
|
import androidx.compose.runtime.* |
|
import androidx.compose.ui.Modifier |
|
import androidx.compose.ui.unit.dp |
|
import components.resources.demo.shared.generated.resources.* |
|
import org.jetbrains.compose.resources.* |
|
|
|
@Composable |
|
fun StringRes(paddingValues: PaddingValues) { |
|
Column( |
|
modifier = Modifier.padding(paddingValues).verticalScroll(rememberScrollState()) |
|
) { |
|
Text( |
|
modifier = Modifier.padding(16.dp), |
|
text = "values/strings.xml", |
|
style = MaterialTheme.typography.titleLarge |
|
) |
|
OutlinedCard( |
|
modifier = Modifier.padding(horizontal = 16.dp).fillMaxWidth(), |
|
shape = RoundedCornerShape(4.dp), |
|
colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.primaryContainer) |
|
) { |
|
var bytes by remember { mutableStateOf(ByteArray(0)) } |
|
LaunchedEffect(Unit) { |
|
bytes = Res.readBytes("values/strings.xml") |
|
} |
|
Text( |
|
modifier = Modifier.padding(8.dp), |
|
text = bytes.decodeToString(), |
|
color = MaterialTheme.colorScheme.onPrimaryContainer, |
|
softWrap = false |
|
) |
|
} |
|
OutlinedTextField( |
|
modifier = Modifier.padding(16.dp).fillMaxWidth(), |
|
value = stringResource(Res.string.app_name), |
|
onValueChange = {}, |
|
label = { Text("Text(stringResource(Res.string.app_name))") }, |
|
enabled = false, |
|
colors = TextFieldDefaults.colors( |
|
disabledTextColor = MaterialTheme.colorScheme.onSurface, |
|
disabledContainerColor = MaterialTheme.colorScheme.surface, |
|
disabledLabelColor = MaterialTheme.colorScheme.onSurface, |
|
) |
|
) |
|
OutlinedTextField( |
|
modifier = Modifier.padding(16.dp).fillMaxWidth(), |
|
value = stringResource(Res.string.hello), |
|
onValueChange = {}, |
|
label = { Text("Text(stringResource(Res.string.hello))") }, |
|
enabled = false, |
|
colors = TextFieldDefaults.colors( |
|
disabledTextColor = MaterialTheme.colorScheme.onSurface, |
|
disabledContainerColor = MaterialTheme.colorScheme.surface, |
|
disabledLabelColor = MaterialTheme.colorScheme.onSurface, |
|
) |
|
) |
|
OutlinedTextField( |
|
modifier = Modifier.padding(16.dp).fillMaxWidth(), |
|
value = stringResource(Res.string.multi_line), |
|
onValueChange = {}, |
|
label = { Text("Text(stringResource(Res.string.multi_line))") }, |
|
enabled = false, |
|
colors = TextFieldDefaults.colors( |
|
disabledTextColor = MaterialTheme.colorScheme.onSurface, |
|
disabledContainerColor = MaterialTheme.colorScheme.surface, |
|
disabledLabelColor = MaterialTheme.colorScheme.onSurface, |
|
) |
|
) |
|
OutlinedTextField( |
|
modifier = Modifier.padding(16.dp).fillMaxWidth(), |
|
value = stringResource(Res.string.str_template, "User_name", 100), |
|
onValueChange = {}, |
|
label = { Text("Text(stringResource(Res.string.str_template, \"User_name\", 100))") }, |
|
enabled = false, |
|
colors = TextFieldDefaults.colors( |
|
disabledTextColor = MaterialTheme.colorScheme.onSurface, |
|
disabledContainerColor = MaterialTheme.colorScheme.surface, |
|
disabledLabelColor = MaterialTheme.colorScheme.onSurface, |
|
) |
|
) |
|
OutlinedTextField( |
|
modifier = Modifier.padding(16.dp).fillMaxWidth(), |
|
value = stringArrayResource(Res.string.str_arr).toString(), |
|
onValueChange = {}, |
|
label = { Text("Text(stringArrayResource(Res.string.str_arr).toString())") }, |
|
enabled = false, |
|
colors = TextFieldDefaults.colors( |
|
disabledTextColor = MaterialTheme.colorScheme.onSurface, |
|
disabledContainerColor = MaterialTheme.colorScheme.surface, |
|
disabledLabelColor = MaterialTheme.colorScheme.onSurface, |
|
) |
|
) |
|
var numMessages by remember { mutableStateOf(0) } |
|
OutlinedTextField( |
|
modifier = Modifier.padding(16.dp).fillMaxWidth(), |
|
value = pluralStringResource(Res.plurals.new_message, numMessages, numMessages), |
|
onValueChange = {}, |
|
label = { Text("Text(pluralStringResource(Res.plurals.new_message, $numMessages, $numMessages))") }, |
|
leadingIcon = { |
|
Row { |
|
IconButton({ numMessages += 1 }) { |
|
Icon(Icons.Default.Add, contentDescription = "Add Message") |
|
} |
|
} |
|
}, |
|
enabled = false, |
|
colors = TextFieldDefaults.colors( |
|
disabledTextColor = MaterialTheme.colorScheme.onSurface, |
|
disabledContainerColor = MaterialTheme.colorScheme.surface, |
|
disabledLabelColor = MaterialTheme.colorScheme.onSurface, |
|
) |
|
) |
|
} |
|
} |