小编Man*_*cas的帖子

当组件依赖于 ViewModel 提供的某些数据时,如何在 JetpackCompose 中创建 @Preview

我正在开发一个应用程序,尝试在其中实现一些新技术,例如 Jetpack Compose。总的来说,它是一个很棒的工具,除了它@Preview比常规 xml 设计文件具有困难的预可视化系统 ( ) 之外。

\n

当我尝试创建一个@Preview代表不同行的组件时,我的问题就出现了,我在其中加载从网络恢复的数据。

\n

就我而言,我做了这个:

\n
@Preview(\n    name ="ListScreenPreview ",\n    showSystemUi = true,\n    showBackground = true,\n    device = Devices.NEXUS_9)\n@Composable\nfun myPokemonRowPreview(\n    @PreviewParameter(PokemonListScreenProvider::class) pokemonMokData: PokedexListModel\n) {\n        PokedexEntry(\n            model = pokemonMokData,\n            navController = rememberNavController(),\n            viewModel = hiltViewModel())\n\n}\n\nclass PokemonListScreenProvider: PreviewParameterProvider<PokedexListModel> {\n    override val values: Sequence<PokedexListModel> = sequenceOf(\n        PokedexListModel(\n            pokemonName = "Cacamon",\n            number = 0,\n            imageUrl = "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/2.png"\n        ),\n        PokedexListModel(\n            pokemonName = "Tontaro",\n            number = 73,\n            imageUrl = "https://raw.githubusercontent.com/PokeAPI/sprites/master/sprites/pokemon/1.png"\n\n        )\n    )\n}\n\n
Run Code Online (Sandbox Code Playgroud)\n

表示这个@Composable:

\n …

android kotlin android-jetpack-compose

6
推荐指数
1
解决办法
5567
查看次数

如何在 Kotlin 多平台项目的共享模块中使用 @Parcelize 注解

我正在开发一个 Kotlin 多平台应用程序,我想在我的模型类中使用 @Parcelize 注释。但在 Kotlin Multiplatform 插件中,我使用的 kotlin 版本中的 @Parcelize 注释位于 android.extensions 插件中,适用于 androidApp 模块。

关于我的 build.gradle.kts(androidApp)

plugins {
  id("com.android.application")
  kotlin("android")
  kotlin("android.extensions")
  kotlin("kapt")
  id("kotlinx-serialization")
  id("androidx.navigation.safeargs.kotlin")
}

android {
  compileSdkVersion(Versions.compileSdk)

  compileOptions{
    sourceCompatibility = org.gradle.api.JavaVersion.VERSION_1_8
    targetCompatibility = org.gradle.api.JavaVersion.VERSION_1_8
  }

  kotlinOptions{
    jvmTarget = JavaVersion.VERSION_1_8.toString()
  }

  kapt{
    generateStubs = true
    correctErrorTypes = true
  }

  androidExtensions{
    isExperimental = true
  }

  buildFeatures{
    dataBinding = true
    viewBinding = true
  }

  defaultConfig {
    applicationId = "com.jshvarts.kmp.android"
    minSdkVersion(Versions.minSdk)
    targetSdkVersion(Versions.targetSdk)
    versionCode = 1
    versionName = "1.0"

    testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" …
Run Code Online (Sandbox Code Playgroud)

android kotlin kmm

5
推荐指数
1
解决办法
4075
查看次数

标签 统计

android ×2

kotlin ×2

android-jetpack-compose ×1

kmm ×1