You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
3.6 KiB
104 lines
3.6 KiB
package org.jetbrains.compose.demo.widgets.ui.screens |
|
|
|
import androidx.compose.foundation.Image |
|
import androidx.compose.foundation.layout.* |
|
import androidx.compose.foundation.shape.RoundedCornerShape |
|
import androidx.compose.material.* |
|
import androidx.compose.material.icons.Icons |
|
import androidx.compose.material.icons.filled.ShoppingCart |
|
import androidx.compose.runtime.Composable |
|
import androidx.compose.runtime.remember |
|
import androidx.compose.ui.Modifier |
|
import androidx.compose.ui.unit.dp |
|
import org.jetbrains.compose.demo.widgets.data.DemoDataProvider |
|
import org.jetbrains.compose.demo.widgets.platform.Res |
|
import org.jetbrains.compose.resources.painterResource |
|
import org.jetbrains.compose.demo.widgets.theme.typography |
|
import org.jetbrains.compose.resources.ExperimentalResourceApi |
|
|
|
@OptIn(ExperimentalMaterialApi::class, ExperimentalResourceApi::class) |
|
@Composable |
|
fun UICards() { |
|
val item = remember { DemoDataProvider.item } |
|
|
|
Text( |
|
text = "Inbuilt box as container for any Clipping/Alignment controls", |
|
style = typography.subtitle1, |
|
modifier = Modifier.padding(8.dp) |
|
) |
|
Card( |
|
modifier = Modifier.padding(8.dp).fillMaxWidth(), |
|
backgroundColor = MaterialTheme.colors.primary, |
|
shape = RoundedCornerShape(topStart = 16.dp, bottomEnd = 16.dp) |
|
) { |
|
Column { |
|
Text( |
|
text = item.title, |
|
modifier = Modifier.padding(8.dp), |
|
color = MaterialTheme.colors.onPrimary |
|
) |
|
Text( |
|
text = item.subtitle, |
|
modifier = Modifier.padding(8.dp), |
|
color = MaterialTheme.colors.onPrimary |
|
) |
|
} |
|
} |
|
Divider() |
|
|
|
Text(text = "Inbuilt Card", style = typography.subtitle1, modifier = Modifier.padding(8.dp)) |
|
Card( |
|
modifier = Modifier.padding(16.dp).fillMaxWidth(), |
|
shape = RoundedCornerShape(4.dp), |
|
elevation = 4.dp |
|
) { |
|
Row { |
|
Image( |
|
painterResource(Res.drawable.p3), |
|
contentDescription = null, |
|
modifier = Modifier.requiredSize(60.dp) |
|
) |
|
Text(text = item.title, modifier = Modifier.padding(16.dp)) |
|
} |
|
} |
|
Divider() |
|
|
|
Text( |
|
text = "In-built ListItems", |
|
style = typography.subtitle1, |
|
modifier = Modifier.padding(8.dp) |
|
) |
|
ListItem(text = { Text(item.title) }, secondaryText = { Text(item.subtitle) }) |
|
Divider(modifier = Modifier.padding(4.dp)) |
|
ListItem( |
|
text = { Text(item.title) }, |
|
secondaryText = { Text(item.subtitle) }, |
|
singleLineSecondaryText = false |
|
) |
|
Divider(modifier = Modifier.padding(4.dp)) |
|
ListItem(text = { Text(item.title) }, secondaryText = { Text(item.subtitle) }, icon = { |
|
Image( |
|
painterResource(Res.drawable.p3), |
|
contentDescription = null |
|
) |
|
}) |
|
Divider(modifier = Modifier.padding(4.dp)) |
|
//I am not sure why this is not going multiline for secondaryText... |
|
ListItem( |
|
text = { Text(item.title) }, |
|
secondaryText = { Text(item.subtitle) }, |
|
icon = { Image(painterResource(Res.drawable.p1), contentDescription = null) }, |
|
overlineText = { Text("Overline text") }, |
|
singleLineSecondaryText = false |
|
) |
|
Divider() |
|
ListItem( |
|
text = { Text(item.title) }, |
|
secondaryText = { Text(item.subtitle) }, |
|
icon = { Image(painterResource(Res.drawable.p2), contentDescription = null) }, |
|
trailing = { Icon(Icons.Default.ShoppingCart, contentDescription = null) }, |
|
singleLineSecondaryText = false |
|
) |
|
Divider() |
|
|
|
} |