mirror of
https://github.com/msfjarvis/compose-lobsters
synced 2025-08-17 19:07:02 +05:30
LobstersItem: improve clickability of save icon
Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
parent
6b53f132d5
commit
330c3a6d22
1 changed files with 17 additions and 17 deletions
|
@ -7,20 +7,24 @@ import androidx.compose.foundation.combinedClickable
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
|
import androidx.compose.foundation.layout.absoluteOffset
|
||||||
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
|
import androidx.compose.foundation.layout.requiredSize
|
||||||
import androidx.compose.foundation.layout.requiredWidth
|
import androidx.compose.foundation.layout.requiredWidth
|
||||||
import androidx.compose.foundation.layout.width
|
import androidx.compose.foundation.layout.sizeIn
|
||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.foundation.lazy.items
|
import androidx.compose.foundation.lazy.items
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.material.IconToggleButton
|
import androidx.compose.material.IconToggleButton
|
||||||
|
import androidx.compose.material.MaterialTheme
|
||||||
import androidx.compose.material.Surface
|
import androidx.compose.material.Surface
|
||||||
import androidx.compose.material.Text
|
import androidx.compose.material.Text
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.platform.LocalConfiguration
|
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
|
@ -64,9 +68,10 @@ fun LobstersItem(
|
||||||
Row(
|
Row(
|
||||||
modifier = Modifier.padding(start = 12.dp, end = 12.dp),
|
modifier = Modifier.padding(start = 12.dp, end = 12.dp),
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
|
horizontalArrangement = Arrangement.SpaceBetween,
|
||||||
) {
|
) {
|
||||||
Column(
|
Column(
|
||||||
modifier = Modifier.width(LocalConfiguration.current.screenWidthDp.dp.times(0.9f))
|
modifier = Modifier.fillMaxWidth(),
|
||||||
) {
|
) {
|
||||||
Text(
|
Text(
|
||||||
text = post.title,
|
text = post.title,
|
||||||
|
@ -105,21 +110,16 @@ fun LobstersItem(
|
||||||
IconToggleButton(
|
IconToggleButton(
|
||||||
checked = isSaved,
|
checked = isSaved,
|
||||||
onCheckedChange = { onSaveButtonClick.invoke() },
|
onCheckedChange = { onSaveButtonClick.invoke() },
|
||||||
|
modifier = Modifier
|
||||||
|
.requiredSize(24.dp)
|
||||||
|
.absoluteOffset(x = (-24).dp),
|
||||||
) {
|
) {
|
||||||
Crossfade(targetState = isSaved) {
|
Crossfade(targetState = isSaved) { saved ->
|
||||||
if (it) {
|
IconResource(
|
||||||
IconResource(
|
resourceId = if (saved) R.drawable.ic_favorite_24px else R.drawable.ic_favorite_border_24px,
|
||||||
resourceId = R.drawable.ic_favorite_24px,
|
tint = MaterialTheme.colors.secondary,
|
||||||
tint = Color(0xFFD97373),
|
contentDescription = stringResource(if (saved) R.string.remove_from_saved_posts else R.string.add_to_saved_posts),
|
||||||
contentDescription = stringResource(R.string.remove_from_saved_posts),
|
)
|
||||||
)
|
|
||||||
} else {
|
|
||||||
IconResource(
|
|
||||||
resourceId = R.drawable.ic_favorite_border_24px,
|
|
||||||
tint = Color(0xFFD97373),
|
|
||||||
contentDescription = stringResource(R.string.add_to_saved_posts),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue