Почти до конца красивую кнопку подробнее сделал, осталось кстати спать 4 часа, надеюсь, машина завтра заведется...
This commit is contained in:
parent
254ab00abb
commit
c39dc24599
@ -63,8 +63,8 @@ fun ScreenListProduct() {
|
||||
) {
|
||||
itemsIndexed(
|
||||
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,"Золотая рыбка","Сказка"),
|
||||
|
@ -1,5 +1,11 @@
|
||||
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.layout.Box
|
||||
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.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.Button
|
||||
import androidx.compose.material.Card
|
||||
import androidx.compose.material.Text
|
||||
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.Modifier
|
||||
import androidx.compose.ui.draw.alpha
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.draw.scale
|
||||
import androidx.compose.ui.draw.shadow
|
||||
import androidx.compose.ui.layout.ContentScale
|
||||
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.sp
|
||||
import com.example.labwork.R
|
||||
|
||||
|
||||
@Composable
|
||||
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()
|
||||
.padding(10.dp),
|
||||
shape = RoundedCornerShape(15.dp),
|
||||
@ -31,17 +54,49 @@ fun ListProduct(item: ItemProduct) {
|
||||
) {
|
||||
Box {
|
||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||
Image(painter = painterResource(id = item.imageId),
|
||||
Column {
|
||||
Image(
|
||||
painter = painterResource(id = item.imageId),
|
||||
contentDescription = "book",
|
||||
contentScale = ContentScale.Crop,
|
||||
modifier = Modifier
|
||||
.padding(10.dp)
|
||||
.size(86.dp)
|
||||
.size(94.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 {
|
||||
Text(text = item.name)
|
||||
Text(text = item.about)
|
||||
Text(text = item.name,
|
||||
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