对于我正在创建的应用程序,我想使用一些Material Design 3元素,包括OutlinedTextFieldView导入,但由于某种原因,该导入未在Android Studio中注册,这意味着使用这些引用的函数无法工作。
作为参考,我使用以下Android Studio版本:Android Studio Giraffe| 2022.3.1补丁3
下面将显示有问题的导入,然后是需要它们的代码块。
第一个月
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun LyricInputForm(
lyricDetails: LyricDetails,
modifier: Modifier = Modifier,
onValueChange: (LyricDetails) -> Unit = {},
enabled: Boolean = true
) {
Column(
modifier = modifier,
verticalArrangement = Arrangement.spacedBy(dimensionResource(id = R.dimen.padding_medium))
) {
OutlinedTextField(
value = lyricDetails.songName,
onValueChange = { onValueChange(lyricDetails.copy(songName = it)) },
label = { Text(stringResource(R.string.song_name_req)) },
colors = OutlinedTextFieldDefaults.colors(
focusedContainerColor = MaterialTheme.colorScheme.secondaryContainer,
unfocusedContainerColor = MaterialTheme.colorScheme.secondaryContainer
),
modifier = Modifier.fillMaxWidth(),
enabled = enabled,
singleLine = true
)
OutlinedTextField(
value = lyricDetails.artistName,
onValueChange = { onValueChange(lyricDetails.copy(artistName = it)) },
label = { Text(stringResource(R.string.artist_name_req)) },
colors = OutlinedTextFieldDefaults.colors(
focusedContainerColor = MaterialTheme.colorScheme.secondaryContainer,
unfocusedContainerColor = MaterialTheme.colorScheme.secondaryContainer
),
modifier = Modifier.fillMaxWidth(),
enabled = enabled,
singleLine = true
)
OutlinedTextField(
value = lyricDetails.lyricData,
onValueChange = { onValueChange(lyricDetails.copy(lyricData = it)) },
label = { Text(stringResource(R.string.lyric_data_req)) },
colors = OutlinedTextFieldDefaults.colors(
focusedContainerColor = MaterialTheme.colorScheme.secondaryContainer,
unfocusedContainerColor = MaterialTheme.colorScheme.secondaryContainer
),
modifier = Modifier.fillMaxWidth(),
enabled = enabled,
singleLine = true
)
if (enabled) {
Text(
text = stringResource(required_fields),
modifier = Modifier.padding(start = dimensionResource(id = R.dimen.padding_medium))
)
}
}
}
字符串
在试图找到解决方案的过程中,我发现保留@OptIn(ExperimentalMaterial 3Api::class)会阻止“OutlinedTextField”块看到出现的实验API消息,但我不明白为什么那个导入似乎工作正常,而另一个却不行。
编辑:在同一个文件中还有其他函数链接到这个文件,所以如果他们也需要看到,我可以提供他们,但目前,这是文件本身的主要问题。
2条答案
按热度按时间gr8qqesn1#
您没有使用最新版本的material3库:
在Gradle文件中添加或更新此依赖关系:
字符串
2admgd592#
我不知道我是否正确理解了这个问题。但正确的含义是:
字符串
来源:OutlinedTextField
我用Hedgehog做了测试