Почти до конца красивую кнопку подробнее сделал, осталось кстати спать 4 часа, надеюсь, машина завтра заведется...
This commit is contained in:
parent
254ab00abb
commit
c39dc24599
@ -63,8 +63,8 @@ fun ScreenListProduct() {
|
|||||||
) {
|
) {
|
||||||
itemsIndexed(
|
itemsIndexed(
|
||||||
listOf(
|
listOf(
|
||||||
ItemProduct(R.drawable.baseline_menu_book,"Золотая рыбка","Сказка"),
|
ItemProduct(R.drawable.baseline_menu_book,"Золотая рыбка","Старик трудолюбивый (трижды забрасывал невод), добрый (отпустил просящую о пощаде единственную добычу), покорный (не перечит жене). Появление волшебной рыбки проявило алчную натуру женщины: требовательную, грубую, жаждущую от корыта до возможности быть владычицей морскою."),
|
||||||
ItemProduct(R.drawable.baseline_menu_book,"Золотая рыбка","Сказка"),
|
ItemProduct(R.drawable.baseline_menu_book,"Золотая рыбка","Старик трудолюбивый (трижды забрасывал невод), добрый (отпустил просящую о пощаде единственную добычу), покорный (не перечит жене). Появление волшебной рыбки проявило алчную натуру женщины: требовательную, грубую, жаждущую от корыта до возможности быть владычицей морскою."),
|
||||||
ItemProduct(R.drawable.baseline_menu_book,"Золотая рыбка","Сказка"),
|
ItemProduct(R.drawable.baseline_menu_book,"Золотая рыбка","Сказка"),
|
||||||
ItemProduct(R.drawable.baseline_menu_book,"Золотая рыбка","Сказка"),
|
ItemProduct(R.drawable.baseline_menu_book,"Золотая рыбка","Сказка"),
|
||||||
ItemProduct(R.drawable.baseline_menu_book,"Золотая рыбка","Сказка"),
|
ItemProduct(R.drawable.baseline_menu_book,"Золотая рыбка","Сказка"),
|
||||||
|
@ -1,5 +1,11 @@
|
|||||||
package com.example.labwork.pages
|
package com.example.labwork.pages
|
||||||
|
|
||||||
|
import androidx.compose.animation.AnimatedVisibility
|
||||||
|
import androidx.compose.animation.core.animateFloatAsState
|
||||||
|
import androidx.compose.animation.expandIn
|
||||||
|
import androidx.compose.animation.fadeIn
|
||||||
|
import androidx.compose.animation.fadeOut
|
||||||
|
import androidx.compose.animation.shrinkOut
|
||||||
import androidx.compose.foundation.Image
|
import androidx.compose.foundation.Image
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.Box
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
@ -9,21 +15,38 @@ import androidx.compose.foundation.layout.padding
|
|||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.foundation.shape.CircleShape
|
import androidx.compose.foundation.shape.CircleShape
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
|
import androidx.compose.material.Button
|
||||||
import androidx.compose.material.Card
|
import androidx.compose.material.Card
|
||||||
import androidx.compose.material.Text
|
import androidx.compose.material.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.mutableStateListOf
|
||||||
|
import androidx.compose.runtime.remember
|
||||||
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.mutableStateOf
|
||||||
|
import androidx.compose.runtime.setValue
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.draw.alpha
|
||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
|
import androidx.compose.ui.draw.scale
|
||||||
import androidx.compose.ui.draw.shadow
|
import androidx.compose.ui.draw.shadow
|
||||||
import androidx.compose.ui.layout.ContentScale
|
import androidx.compose.ui.layout.ContentScale
|
||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
|
import androidx.compose.ui.semantics.Role.Companion.Button
|
||||||
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
|
import androidx.compose.ui.unit.sp
|
||||||
import com.example.labwork.R
|
import com.example.labwork.R
|
||||||
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ListProduct(item: ItemProduct) {
|
fun ListProduct(item: ItemProduct) {
|
||||||
Card(modifier = Modifier
|
var isFullAbout by remember { mutableStateOf(false) }
|
||||||
|
val scale by animateFloatAsState(if (isFullAbout) 1f else 0f)
|
||||||
|
|
||||||
|
Card(
|
||||||
|
modifier = Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.padding(10.dp),
|
.padding(10.dp),
|
||||||
shape = RoundedCornerShape(15.dp),
|
shape = RoundedCornerShape(15.dp),
|
||||||
@ -31,17 +54,49 @@ fun ListProduct(item: ItemProduct) {
|
|||||||
) {
|
) {
|
||||||
Box {
|
Box {
|
||||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||||
Image(painter = painterResource(id = item.imageId),
|
Column {
|
||||||
|
Image(
|
||||||
|
painter = painterResource(id = item.imageId),
|
||||||
contentDescription = "book",
|
contentDescription = "book",
|
||||||
contentScale = ContentScale.Crop,
|
contentScale = ContentScale.Crop,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(10.dp)
|
.padding(10.dp)
|
||||||
.size(86.dp)
|
.size(94.dp)
|
||||||
.shadow(2.dp)
|
.shadow(2.dp)
|
||||||
)
|
)
|
||||||
|
Button(
|
||||||
|
modifier = Modifier
|
||||||
|
.padding(9.dp)
|
||||||
|
.size(height = 32.dp, width = 95.dp),
|
||||||
|
onClick = {
|
||||||
|
isFullAbout = !isFullAbout
|
||||||
|
},
|
||||||
|
shape = RoundedCornerShape(15.dp)
|
||||||
|
) {
|
||||||
|
Text("Подробнее", fontSize = 10.sp)
|
||||||
|
}
|
||||||
|
}
|
||||||
Column {
|
Column {
|
||||||
Text(text = item.name)
|
Text(text = item.name,
|
||||||
Text(text = item.about)
|
fontSize = if (isFullAbout) 18.sp else 14.sp,
|
||||||
|
fontWeight = if (isFullAbout) FontWeight.Bold else FontWeight.Normal,
|
||||||
|
textAlign = TextAlign.Center,
|
||||||
|
modifier = Modifier.fillMaxWidth().padding(top = 8.dp)
|
||||||
|
)
|
||||||
|
AnimatedVisibility(
|
||||||
|
visible = isFullAbout,
|
||||||
|
enter = fadeIn() + expandIn(),
|
||||||
|
exit = fadeOut() + shrinkOut(),
|
||||||
|
modifier = Modifier.scale(scale)
|
||||||
|
) {
|
||||||
|
Text(
|
||||||
|
text = item.about,
|
||||||
|
maxLines = 10,
|
||||||
|
fontSize = 14.sp,
|
||||||
|
textAlign = TextAlign.Center,
|
||||||
|
modifier = Modifier.fillMaxWidth().padding(top = 8.dp)
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user