LazyverticalGrid: несоответствие типаAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 LazyverticalGrid: несоответствие типа

Сообщение Anonymous »

Я следую за этим учебником: https://developer.android.com/codelabs/ ... 2Fandroid- Основы скомплектования-Unit-3-pathway-2%3FHL%3den%23Codelab-https%3a%2f%2fdeveloper.android.com%2fcodelabs%2fbasic-android-kotlin-compose-practice-grid & hl = en#0
Я использую объект LazyverticalGrid для отображения карт.
Мой код не работает.
«It» (в {it ->) рассматривается как целое число. Это должно рассматриваться как «тема».
Я не понимаю, что делаю не так. < /P>
package com.example.buildagrid

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.Image
import androidx.compose.foundation.border
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.lazy.grid.GridCells
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
import androidx.compose.material3.Card
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.example.buildagrid.data.DataSource
import com.example.buildagrid.data.DataSource.topics
import com.example.buildagrid.model.Topic
import com.example.buildagrid.ui.theme.BuildAGridTheme

@Composable
fun TopicGrid(modifier: Modifier = Modifier) {
LazyVerticalGrid(
columns = GridCells.Fixed(3)
) {
items(topics) { it ->
TopicCard(it)
}

}
}

@Composable
fun TopicCard(topic: Topic, modifier: Modifier = Modifier) {
Card(
modifier = modifier
//.height(68.dp)
) {
Row {
Column {
Image(
painter = painterResource(topic.imageRes),
contentDescription = "",
modifier = Modifier
.size(68.dp)
)
}
Column {
Row {
Text(
text = stringResource(topic.name),
style = MaterialTheme.typography.bodyMedium,
modifier = Modifier
.padding(top = 16.dp, start = 16.dp, end = 16.dp, bottom = 8.dp)
)
}
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier
.border(1.dp, Color.Blue)
) {
Icon(
painter = painterResource(R.drawable.ic_grain),
contentDescription = "",
modifier = Modifier
.padding(start = 16.dp, end = 8.dp)
)
Text(
text = topic.availableCourses.toString(),
style = MaterialTheme.typography.labelMedium
)
}
}
}
}
}
< /code>
«it» (в {it ->) рассматривается как целое число. Это следует рассматривать как «тема». < /P>
object DataSource {
val topics = listOf(
Topic(R.string.architecture, 58, R.drawable.architecture),
Topic(R.string.crafts, 121, R.drawable.crafts),
Topic(R.string.business, 78, R.drawable.business),
Topic(R.string.culinary, 118, R.drawable.culinary),
Topic(R.string.design, 423, R.drawable.design),
Topic(R.string.fashion, 92, R.drawable.fashion),
Topic(R.string.film, 165, R.drawable.film),
Topic(R.string.gaming, 164, R.drawable.gaming),
Topic(R.string.drawing, 326, R.drawable.drawing),
Topic(R.string.lifestyle, 305, R.drawable.lifestyle),
Topic(R.string.music, 212, R.drawable.music),
Topic(R.string.painting, 172, R.drawable.painting),
Topic(R.string.photography, 321, R.drawable.photography),
Topic(R.string.tech, 118, R.drawable.tech)
)
}
< /code>
data class Topic(
@StringRes val name: Int,
val availableCourses: Int,
@DrawableRes val imageRes: Int
)


Подробнее здесь: https://stackoverflow.com/questions/794 ... e-mismatch
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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