Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import androidx.compose.foundation.background
- import androidx.compose.foundation.layout.Box
- import androidx.compose.foundation.layout.size
- import androidx.compose.runtime.Composable
- import androidx.compose.ui.Modifier
- import androidx.compose.ui.graphics.Color
- import androidx.compose.ui.tooling.preview.Preview
- import androidx.compose.ui.unit.dp
- enum class MyCustomType {
- Type1, Type2, Type3
- }
- data class ComplexClass(val type: MyCustomType)
- data class SimpleClass(val color: Color)
- // need to test all types
- object ComplexDummyData {
- val type1Data = ComplexClass(type = MyCustomType.Type1)
- val type2Data = ComplexClass(type = MyCustomType.Type2)
- val type3Data = ComplexClass(type = MyCustomType.Type3)
- }
- // we only need to preview 1 colour value
- object SimpleDummyData {
- val data = SimpleClass(color = Color.Yellow)
- }
- @Composable
- fun ComplexComposable(modifier: Modifier = Modifier, data: ComplexClass) {
- // logic to figure out the background colour
- val backgroundColour = when (data.type) {
- MyCustomType.Type1 -> Color.Blue
- MyCustomType.Type2 -> Color.Green
- MyCustomType.Type3 -> Color.Red
- }
- Box(
- modifier = modifier
- .size(50.dp)
- .background(color = backgroundColour)
- )
- }
- @Composable
- fun SimpleComposable(modifier: Modifier = Modifier, data: SimpleClass) {
- Box(
- modifier = modifier
- .size(50.dp)
- .background(color = data.color)
- )
- }
- @Preview
- @Composable
- private fun PreviewComplexType1() {
- ComplexComposable(data = ComplexDummyData.type1Data)
- }
- @Preview
- @Composable
- private fun PreviewComplexType2() {
- ComplexComposable(data = ComplexDummyData.type2Data)
- }
- @Preview
- @Composable
- private fun PreviewComplexType3() {
- ComplexComposable(data = ComplexDummyData.type3Data)
- }
- @Preview
- @Composable
- private fun SimpleComposablePreview() {
- SimpleComposable(data = SimpleDummyData.data)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement