First implementation of LazyColumn.

This commit is contained in:
AlbYoda 2025-03-07 12:02:58 +01:00
parent 75dfa46ae8
commit e8e34f3d58
No known key found for this signature in database
GPG key ID: 1124F0801AFEF527
3 changed files with 32 additions and 13 deletions

1
.idea/gradle.xml generated
View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings"> <component name="GradleSettings">
<option name="linkedExternalProjectsSettings"> <option name="linkedExternalProjectsSettings">
<GradleProjectSettings> <GradleProjectSettings>

View file

@ -7,6 +7,8 @@ import androidx.navigation.compose.composable
import com.bbc.denadrive.home.DetailsScreen import com.bbc.denadrive.home.DetailsScreen
import com.bbc.denadrive.home.HomeScreen import com.bbc.denadrive.home.HomeScreen
import com.bbc.denadrive.home.ScaffoldWithSidebar import com.bbc.denadrive.home.ScaffoldWithSidebar
import androidx.compose.material3.Text
import com.bbc.denadrive.home.MyListVisualizer
@Composable @Composable
fun NavigationGraph(navController: NavHostController) { fun NavigationGraph(navController: NavHostController) {
@ -23,6 +25,6 @@ fun NavigationGraph(navController: NavHostController) {
DetailsScreen(itemId, navController) DetailsScreen(itemId, navController)
} }
composable("prova") { ScaffoldWithSidebar() } composable("prova") { ScaffoldWithSidebar { lista -> MyListVisualizer(lista) } }
} }
} }

View file

@ -20,6 +20,7 @@ import androidx.navigation.NavHostController
import androidx.compose.foundation.clickable import androidx.compose.foundation.clickable
import androidx.compose.foundation.gestures.detectTapGestures import androidx.compose.foundation.gestures.detectTapGestures
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Menu import androidx.compose.material.icons.filled.Menu
import androidx.compose.material.icons.filled.MoreVert import androidx.compose.material.icons.filled.MoreVert
@ -33,6 +34,7 @@ import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import androidx.compose.foundation.lazy.items
//import androidx.compose.material3.icons.Icons //import androidx.compose.material3.icons.Icons
//import androidx.compose.material3.icons.filled.Menu //import androidx.compose.material3.icons.filled.Menu
@ -53,11 +55,15 @@ fun DetailsScreen(itemId: String?, navController: NavHostController) {
@OptIn(ExperimentalMaterial3Api::class) @OptIn(ExperimentalMaterial3Api::class)
@Composable @Composable
fun ScaffoldWithSidebar() { fun ScaffoldWithSidebar(
toBeDisplayed: @Composable (List<String>) -> Unit
) {
// State to control the drawer // State to control the drawer
val drawerState = rememberDrawerState(initialValue = DrawerValue.Closed) val drawerState = rememberDrawerState(initialValue = DrawerValue.Closed)
val scope = rememberCoroutineScope() val scope = rememberCoroutineScope()
val lista = listOf<String>("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z",)
// ModalNavigationDrawer // ModalNavigationDrawer
ModalNavigationDrawer( ModalNavigationDrawer(
drawerState = drawerState, drawerState = drawerState,
@ -70,9 +76,9 @@ fun ScaffoldWithSidebar() {
.background(Color.White) .background(Color.White)
) { ) {
RectangularButton(backgroundColor = Color.White, text = "Text 1") { } RectangularButton(backgroundColor = Color.White, text = "Text 1") { }
Spacer(modifier = Modifier.height(10.dp)) // Spacer(modifier = Modifier.height(10.dp))
RectangularButton(backgroundColor = Color.White, text = "Text 2") { } RectangularButton(backgroundColor = Color.White, text = "Text 2") { }
Spacer(modifier = Modifier.height(10.dp)) // Spacer(modifier = Modifier.height(10.dp))
RectangularButton(backgroundColor = Color.White, text = "Text 3") { } RectangularButton(backgroundColor = Color.White, text = "Text 3") { }
} }
}, },
@ -108,7 +114,8 @@ fun ScaffoldWithSidebar() {
.padding(16.dp), .padding(16.dp),
contentAlignment = Alignment.Center contentAlignment = Alignment.Center
) { ) {
Text("Main Content", fontSize = 24.sp) toBeDisplayed(lista)
// Text("Main Content", fontSize = 24.sp)
} }
} }
) )
@ -127,7 +134,6 @@ fun RectangularButton(
Box( Box(
modifier = Modifier modifier = Modifier
.padding(8.dp)
.fillMaxWidth() .fillMaxWidth()
.height(48.dp) // Set the height of the button .height(48.dp) // Set the height of the button
.background(color = backgroundColor) // Set the background color .background(color = backgroundColor) // Set the background color
@ -143,7 +149,8 @@ fun RectangularButton(
}, },
onTap = { onClick() } // Call the onClick action onTap = { onClick() } // Call the onClick action
) )
}, }
.padding(8.dp),
contentAlignment = Alignment.Center // Center the text contentAlignment = Alignment.Center // Center the text
) { ) {
Text(text = text, style = MaterialTheme.typography.bodyLarge) // Button text Text(text = text, style = MaterialTheme.typography.bodyLarge) // Button text
@ -151,14 +158,23 @@ fun RectangularButton(
} }
@Composable @Composable
fun MyApp() { fun MyListVisualizer (
ScaffoldWithSidebar() lista: List<String>
) {
LazyColumn {
items(lista) { messaggio -> Text(text=messaggio, fontSize = 30.sp) }
}
} }
@Composable //@Composable
fun MainActivityContent() { //fun MyApp() {
MyApp() // ScaffoldWithSidebar()
} //}
//@Composable
//fun MainActivityContent() {
// MyApp()
//}
//@OptIn(ExperimentalMaterial3Api::class) //@OptIn(ExperimentalMaterial3Api::class)