android Material Design 3 -OutlinedTextFieldText不工作

mctunoxg  于 2024-01-04  发布在  Android
关注(0)|答案(2)|浏览(312)

对于我正在创建的应用程序,我想使用一些Material Design 3元素,包括OutlinedTextFieldView导入,但由于某种原因,该导入未在Android Studio中注册,这意味着使用这些引用的函数无法工作。
作为参考,我使用以下Android Studio版本:Android Studio Giraffe| 2022.3.1补丁3
下面将显示有问题的导入,然后是需要它们的代码块。
第一个月

  1. @OptIn(ExperimentalMaterial3Api::class)
  2. @Composable
  3. fun LyricInputForm(
  4. lyricDetails: LyricDetails,
  5. modifier: Modifier = Modifier,
  6. onValueChange: (LyricDetails) -> Unit = {},
  7. enabled: Boolean = true
  8. ) {
  9. Column(
  10. modifier = modifier,
  11. verticalArrangement = Arrangement.spacedBy(dimensionResource(id = R.dimen.padding_medium))
  12. ) {
  13. OutlinedTextField(
  14. value = lyricDetails.songName,
  15. onValueChange = { onValueChange(lyricDetails.copy(songName = it)) },
  16. label = { Text(stringResource(R.string.song_name_req)) },
  17. colors = OutlinedTextFieldDefaults.colors(
  18. focusedContainerColor = MaterialTheme.colorScheme.secondaryContainer,
  19. unfocusedContainerColor = MaterialTheme.colorScheme.secondaryContainer
  20. ),
  21. modifier = Modifier.fillMaxWidth(),
  22. enabled = enabled,
  23. singleLine = true
  24. )
  25. OutlinedTextField(
  26. value = lyricDetails.artistName,
  27. onValueChange = { onValueChange(lyricDetails.copy(artistName = it)) },
  28. label = { Text(stringResource(R.string.artist_name_req)) },
  29. colors = OutlinedTextFieldDefaults.colors(
  30. focusedContainerColor = MaterialTheme.colorScheme.secondaryContainer,
  31. unfocusedContainerColor = MaterialTheme.colorScheme.secondaryContainer
  32. ),
  33. modifier = Modifier.fillMaxWidth(),
  34. enabled = enabled,
  35. singleLine = true
  36. )
  37. OutlinedTextField(
  38. value = lyricDetails.lyricData,
  39. onValueChange = { onValueChange(lyricDetails.copy(lyricData = it)) },
  40. label = { Text(stringResource(R.string.lyric_data_req)) },
  41. colors = OutlinedTextFieldDefaults.colors(
  42. focusedContainerColor = MaterialTheme.colorScheme.secondaryContainer,
  43. unfocusedContainerColor = MaterialTheme.colorScheme.secondaryContainer
  44. ),
  45. modifier = Modifier.fillMaxWidth(),
  46. enabled = enabled,
  47. singleLine = true
  48. )
  49. if (enabled) {
  50. Text(
  51. text = stringResource(required_fields),
  52. modifier = Modifier.padding(start = dimensionResource(id = R.dimen.padding_medium))
  53. )
  54. }
  55. }
  56. }

字符串
在试图找到解决方案的过程中,我发现保留@OptIn(ExperimentalMaterial 3Api::class)会阻止“OutlinedTextField”块看到出现的实验API消息,但我不明白为什么那个导入似乎工作正常,而另一个却不行。
编辑:在同一个文件中还有其他函数链接到这个文件,所以如果他们也需要看到,我可以提供他们,但目前,这是文件本身的主要问题。

gr8qqesn

gr8qqesn1#

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

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

字符串

2admgd59

2admgd592#

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

  1. import androidx.compose.material3.OutlinedTextField
  2. import androidx.compose.material3.ExperimentalMaterial3Api

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

相关问题