package
com.example.newcanaryproject
import
android.content.Context
import
android.os.Bundle
import
android.widget.Toast
import
androidx.activity.ComponentActivity
import
androidx.activity.compose.setContent
import
androidx.compose.foundation.ExperimentalFoundationApi
import
androidx.compose.foundation.Image
import
androidx.compose.foundation.layout.*
import
androidx.compose.foundation.lazy.GridCells
import
androidx.compose.foundation.lazy.LazyVerticalGrid
import
androidx.compose.material.*
import
androidx.compose.runtime.*
import
androidx.compose.ui.Alignment
import
androidx.compose.ui.Modifier
import
androidx.compose.ui.graphics.Color
import
androidx.compose.ui.platform.LocalContext
import
androidx.compose.ui.res.painterResource
import
androidx.compose.ui.text.style.TextAlign
import
androidx.compose.ui.unit.*
import
com.example.newcanaryproject.ui.theme.*
import
java.util.*
class
MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContent {
NewCanaryProjectTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colors.background
) {
Scaffold(
topBar = {
TopAppBar(backgroundColor = greenColor,
title = {
Text(
text =
"Grid View Example"
,
modifier = Modifier.fillMaxWidth(),
textAlign = TextAlign.Center,
color = Color.White
)
}
)
}
) {
gridView(LocalContext.current)
}
}
}
}
}
}
@OptIn
(ExperimentalFoundationApi::
class
, ExperimentalMaterialApi::
class
)
@Composable
fun gridView(context: Context) {
lateinit var courseList: List<GridModal>
courseList = ArrayList<GridModal>()
courseList = courseList + GridModal(
"Android"
, R.drawable.android)
courseList = courseList + GridModal(
"JavaScript"
, R.drawable.js)
courseList = courseList + GridModal(
"Python"
, R.drawable.python)
courseList = courseList + GridModal(
"C++"
, R.drawable.c)
courseList = courseList + GridModal(
"C#"
, R.drawable.csharp)
courseList = courseList + GridModal(
"Java"
, R.drawable.java)
courseList = courseList + GridModal(
"Node Js"
, R.drawable.nodejs)
LazyVerticalGrid(
cells = GridCells.Fixed(
2
),
modifier = Modifier.padding(
10
.dp)
) {
items(courseList.size) {
Card(
onClick = {
Toast.makeText(
context,
courseList[it].languageName +
" selected.."
,
Toast.LENGTH_SHORT
).show()
},
modifier = Modifier.padding(
8
.dp),
elevation =
6
.dp
) {
Column(
Modifier
.fillMaxSize()
.padding(
5
.dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
Image(
painter = painterResource(id = courseList[it].languageImg),
contentDescription =
"Javascript"
,
modifier = Modifier
.height(
60
.dp)
.width(
60
.dp)
.padding(
5
.dp)
)
Spacer(modifier = Modifier.height(
9
.dp))
Text(
text = courseList[it].languageName,
modifier = Modifier.padding(
4
.dp),
color = Color.Black
)
}
}
}
}
}