PPB F - Tugas 6 Image Scroll
Nama : Ahmad Ibnu Malik Rahman
Kelas : PPB F
NRP : 5025201232
Tugas 6 (Image Scroll)
Membuat daftar yang dapat digulir di aplikasi menggunakan Jetpack Compose.
- package com.example.affirmations
- import android.os.Bundle
- import androidx.activity.ComponentActivity
- import androidx.activity.compose.setContent
- import androidx.compose.foundation.Image
- import androidx.compose.foundation.layout.Column
- import androidx.compose.foundation.layout.fillMaxSize
- import androidx.compose.foundation.layout.fillMaxWidth
- import androidx.compose.foundation.layout.height
- import androidx.compose.foundation.layout.padding
- import androidx.compose.foundation.lazy.LazyColumn
- import androidx.compose.foundation.lazy.items
- import androidx.compose.material3.Card
- import androidx.compose.material3.MaterialTheme
- import androidx.compose.material3.Surface
- import androidx.compose.material3.Text
- import androidx.compose.runtime.Composable
- import androidx.compose.ui.Modifier
- import androidx.compose.ui.layout.ContentScale
- import androidx.compose.ui.platform.LocalContext
- import androidx.compose.ui.res.painterResource
- import androidx.compose.ui.res.stringResource
- import androidx.compose.ui.tooling.preview.Preview
- import androidx.compose.ui.unit.dp
- import com.example.affirmations.data.Datasource
- import com.example.affirmations.model.Affirmation
- import com.example.affirmations.ui.theme.AffirmationsTheme
- class MainActivity : ComponentActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContent {
- AffirmationsTheme {
- // A surface container using the 'background' color from the theme
- Surface(
- modifier = Modifier.fillMaxSize(),
- color = MaterialTheme.colorScheme.background
- ) {
- AffirmationsApp()
- }
- }
- }
- }
- }
- @Composable
- fun AffirmationsApp() {
- AffirmationList(affirmationList = Datasource().loadAffirmations())
- }
- @Composable
- fun AffirmationCard(affirmation: Affirmation, modifier: Modifier = Modifier){
- Card(modifier = modifier) {
- Column {
- Image(painter = painterResource(affirmation.imageResourceId),
- contentDescription = stringResource(affirmation.stringResourceId),
- modifier = Modifier
- .fillMaxWidth()
- .height(194.dp),
- contentScale = ContentScale.Crop
- )
- Text(
- text = LocalContext.current.getString(affirmation.stringResourceId),
- modifier = Modifier.padding(16.dp),
- style = MaterialTheme.typography.headlineSmall)
- }
- }
- }
- @Preview(
- showSystemUi = true,
- showBackground = true
- )
- @Composable
- private fun AffirmationCardPreview() {
- AffirmationCard(affirmation = Affirmation(R.string.affirmation1, R.drawable.image1))
- }
- @Composable
- fun AffirmationList(affirmationList: List<Affirmation>, modifier: Modifier = Modifier){
- LazyColumn (modifier = modifier){
- items(affirmationList){affirmation ->
- AffirmationCard(affirmation,
- modifier = Modifier.padding(16.dp),
- )
- }
- }
- }
Komentar
Posting Komentar