Skip to content

Commit 723d524

Browse files
committed
Add getDisplayName example for @PreviewParameter
In Compose 1.10.0 the `PreviewParameterProvider` used by Android Studio will support custom display names. Adding a snippet with this usage to be referred in the developer documentation.
1 parent bc8df0c commit 723d524

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

compose/snippets/src/main/java/com/example/compose/snippets/tooling/AndroidStudioComposeSnippets.kt

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import androidx.compose.ui.tooling.preview.Preview
3030
import androidx.compose.ui.tooling.preview.PreviewParameter
3131
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
3232
import com.example.compose.snippets.R
33-
import com.example.compose.snippets.interop.User
3433

3534
// [START android_compose_tooling_simple_composable]
3635
@Composable
@@ -167,6 +166,31 @@ fun UserProfilePreview2(
167166
UserProfile(user)
168167
}
169168
// [END android_compose_tooling_preview_parameter_provider_composable2]
169+
170+
171+
// [START android_compose_tooling_preview_parameter_provider_composable3]
172+
class UserAgePreviewParameterProvider : PreviewParameterProvider<User> {
173+
// Using a List internally for efficient index-based access
174+
private val userList = listOf(
175+
User(name = "Elise", age = 30),
176+
User(name = "Frank", age = 31),
177+
User(name = "Julia", age = 40)
178+
)
179+
180+
override val values = userList.asSequence()
181+
182+
override fun getDisplayName(index: Int): String? {
183+
// Return null or an empty string to use the default index-based name
184+
val user = userList.getOrNull(index) ?: return null
185+
return "${user.name} - ${user.age}"
186+
}
187+
}
188+
// [END android_compose_tooling_preview_parameter_provider_composable3]
189+
190+
// [START_EXCLUDE silent]
191+
private data class User(val name: String, val age: Int = 0)
192+
// [END_EXCLUDE]
193+
170194
/*
171195
private object PreviewAnnotationEx {
172196
// [START android_compose_tooling_preview_annotation]

0 commit comments

Comments
 (0)