android Material Design 3 -OutlinedTextFieldText不工作

mctunoxg  于 5个月前  发布在  Android
关注(0)|答案(2)|浏览(63)

对于我正在创建的应用程序,我想使用一些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消息,但我不明白为什么那个导入似乎工作正常,而另一个却不行。
编辑:在同一个文件中还有其他函数链接到这个文件,所以如果他们也需要看到,我可以提供他们,但目前,这是文件本身的主要问题。

gr8qqesn

gr8qqesn1#

您没有使用最新版本的material3库:
在Gradle文件中添加或更新此依赖关系:

implementation 'androidx.compose.material3:material3:1.1.2'

字符串

2admgd59

2admgd592#

我不知道我是否正确理解了这个问题。但正确的含义是:

import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.ExperimentalMaterial3Api

字符串
来源:OutlinedTextField
我用Hedgehog做了测试

相关问题