Лаба готова, вроде
This commit is contained in:
parent
ea2618556f
commit
c6aeb58bdd
@ -3,7 +3,11 @@ package com.example.mobileapp.components
|
|||||||
import androidx.compose.foundation.layout.fillMaxSize
|
import androidx.compose.foundation.layout.fillMaxSize
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
|
import androidx.compose.material.icons.Icons
|
||||||
|
import androidx.compose.material.icons.filled.Search
|
||||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
|
import androidx.compose.material3.Icon
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.OutlinedTextField
|
import androidx.compose.material3.OutlinedTextField
|
||||||
import androidx.compose.material3.Surface
|
import androidx.compose.material3.Surface
|
||||||
@ -12,6 +16,7 @@ import androidx.compose.runtime.Composable
|
|||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.text.input.PasswordVisualTransformation
|
import androidx.compose.ui.text.input.PasswordVisualTransformation
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
@ -32,7 +37,8 @@ fun PlaceholderInputField(label: String){
|
|||||||
},
|
},
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.padding(top = 8.dp, start = 16.dp, bottom = 8.dp, end = 16.dp))
|
.padding(top = 8.dp, start = 16.dp, bottom = 8.dp, end = 16.dp),
|
||||||
|
shape = RoundedCornerShape(10.dp))
|
||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(ExperimentalMaterial3Api::class)
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
@ -51,7 +57,35 @@ fun PasswordInputField(label: String){
|
|||||||
visualTransformation = PasswordVisualTransformation(),
|
visualTransformation = PasswordVisualTransformation(),
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.padding(top = 8.dp, start = 16.dp, bottom = 8.dp, end = 16.dp))
|
.padding(top = 8.dp, start = 16.dp, bottom = 8.dp, end = 16.dp),
|
||||||
|
shape = RoundedCornerShape(10.dp))
|
||||||
|
}
|
||||||
|
|
||||||
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
|
@Composable
|
||||||
|
fun SearchInputField(){
|
||||||
|
var text = remember { mutableStateOf("") }
|
||||||
|
|
||||||
|
OutlinedTextField(
|
||||||
|
value = text.value,
|
||||||
|
onValueChange = {
|
||||||
|
text.value = it
|
||||||
|
},
|
||||||
|
leadingIcon = {
|
||||||
|
Icon(
|
||||||
|
imageVector = Icons.Default.Search,
|
||||||
|
contentDescription = "",
|
||||||
|
tint = Color.Gray
|
||||||
|
)
|
||||||
|
},
|
||||||
|
placeholder = {
|
||||||
|
Text("Поиск")
|
||||||
|
},
|
||||||
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.padding(top = 16.dp, start = 16.dp, bottom = 8.dp, end = 16.dp),
|
||||||
|
shape = RoundedCornerShape(10.dp)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Preview(showBackground = true)
|
@Preview(showBackground = true)
|
||||||
|
@ -30,6 +30,7 @@ import androidx.compose.ui.graphics.Color
|
|||||||
import androidx.compose.ui.layout.ContentScale
|
import androidx.compose.ui.layout.ContentScale
|
||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
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.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
import com.example.mobileapp.R
|
import com.example.mobileapp.R
|
||||||
@ -37,21 +38,24 @@ import com.example.mobileapp.entities.Mail
|
|||||||
import com.example.mobileapp.entities.MailSingleton
|
import com.example.mobileapp.entities.MailSingleton
|
||||||
import com.example.mobileapp.entities.Story
|
import com.example.mobileapp.entities.Story
|
||||||
import com.example.mobileapp.entities.StorySingleton
|
import com.example.mobileapp.entities.StorySingleton
|
||||||
|
import com.example.mobileapp.ui.theme.BackgroundItem2
|
||||||
import com.example.mobileapp.ui.theme.ButtonColor1
|
import com.example.mobileapp.ui.theme.ButtonColor1
|
||||||
import com.example.mobileapp.ui.theme.ButtonColor2
|
import com.example.mobileapp.ui.theme.ButtonColor2
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun DataListScroll(){
|
fun DataListScroll(){
|
||||||
val storySingleton = StorySingleton()
|
val storySingleton = StorySingleton()
|
||||||
|
val isFirstTime = remember { mutableStateOf(true) }
|
||||||
|
|
||||||
LazyColumn(
|
LazyColumn(
|
||||||
horizontalAlignment = Alignment.CenterHorizontally,
|
horizontalAlignment = Alignment.CenterHorizontally,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
){
|
){
|
||||||
items(
|
item {
|
||||||
storySingleton.getStoryList()
|
addNewListItem()
|
||||||
){ item ->
|
}
|
||||||
|
items(storySingleton.getStoryList()){ item ->
|
||||||
DataListItem(item = item)
|
DataListItem(item = item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -144,9 +148,10 @@ fun MailListScroll(){
|
|||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
){
|
){
|
||||||
items(
|
item {
|
||||||
mailSingleton.getMailList()
|
addNewListItem()
|
||||||
){ item ->
|
}
|
||||||
|
items(mailSingleton.getMailList()){ item ->
|
||||||
MailListItem(item = item)
|
MailListItem(item = item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -219,3 +224,44 @@ fun MailListItem(item: Mail){
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Preview(showBackground = true)
|
||||||
|
@Composable
|
||||||
|
fun addNewListItem(){
|
||||||
|
Card(
|
||||||
|
modifier = Modifier
|
||||||
|
.fillMaxWidth()
|
||||||
|
.padding(start = 18.dp, top = 8.dp, end = 18.dp, bottom = 8.dp)
|
||||||
|
.clickable {
|
||||||
|
|
||||||
|
},
|
||||||
|
shape = RoundedCornerShape(15.dp),
|
||||||
|
colors = CardDefaults.cardColors(
|
||||||
|
containerColor = BackgroundItem2
|
||||||
|
),
|
||||||
|
elevation = CardDefaults.cardElevation(
|
||||||
|
defaultElevation = 8.dp
|
||||||
|
)
|
||||||
|
) {
|
||||||
|
Column(
|
||||||
|
modifier = Modifier.fillMaxSize()
|
||||||
|
) {
|
||||||
|
Row(
|
||||||
|
modifier = Modifier.fillMaxWidth(),
|
||||||
|
verticalAlignment = Alignment.CenterVertically
|
||||||
|
){
|
||||||
|
Image(painter = painterResource(id = R.drawable.additem),
|
||||||
|
contentDescription = "additem",
|
||||||
|
contentScale = ContentScale.Crop,
|
||||||
|
modifier = Modifier
|
||||||
|
.size(96.dp)
|
||||||
|
.padding(8.dp))
|
||||||
|
Text(
|
||||||
|
text = "Добавить",
|
||||||
|
fontSize = 28.sp,
|
||||||
|
fontWeight = FontWeight.Bold,
|
||||||
|
modifier = Modifier.padding(start = 32.dp))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -5,10 +5,18 @@ import androidx.compose.foundation.layout.fillMaxSize
|
|||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.navigation.NavHostController
|
import androidx.navigation.NavHostController
|
||||||
import com.example.mobileapp.components.NavBar
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun EditScreen(navController: NavHostController) {
|
fun EditStoryScreen(navController: NavHostController) {
|
||||||
|
Column(
|
||||||
|
modifier = Modifier.fillMaxSize()
|
||||||
|
) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun EditMailScreen(navController: NavHostController) {
|
||||||
Column(
|
Column(
|
||||||
modifier = Modifier.fillMaxSize()
|
modifier = Modifier.fillMaxSize()
|
||||||
) {
|
) {
|
@ -9,12 +9,11 @@ import androidx.compose.foundation.layout.fillMaxSize
|
|||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
|
||||||
import androidx.navigation.NavHostController
|
import androidx.navigation.NavHostController
|
||||||
import com.example.mobileapp.components.DataListScroll
|
import com.example.mobileapp.components.DataListScroll
|
||||||
import com.example.mobileapp.components.NavBar
|
import com.example.mobileapp.components.NavBar
|
||||||
import com.example.mobileapp.ui.theme.BackgroundItem1
|
import com.example.mobileapp.ui.theme.BackgroundItem1
|
||||||
import com.example.mobileapp.ui.theme.ButtonColor1
|
import com.example.mobileapp.ui.theme.BackgroundItem2
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ListDataScreen(navController: NavHostController){
|
fun ListDataScreen(navController: NavHostController){
|
||||||
@ -35,7 +34,7 @@ fun ListDataScreen(navController: NavHostController){
|
|||||||
.fillMaxSize(),
|
.fillMaxSize(),
|
||||||
verticalArrangement = Arrangement.Center
|
verticalArrangement = Arrangement.Center
|
||||||
) {
|
) {
|
||||||
NavBar(navController = navController, itemColorFilter = Color.White)
|
NavBar(navController = navController, itemColorFilter = BackgroundItem2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -9,11 +9,11 @@ import androidx.compose.foundation.layout.fillMaxSize
|
|||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
|
||||||
import androidx.navigation.NavHostController
|
import androidx.navigation.NavHostController
|
||||||
import com.example.mobileapp.components.MailListScroll
|
import com.example.mobileapp.components.MailListScroll
|
||||||
import com.example.mobileapp.components.NavBar
|
import com.example.mobileapp.components.NavBar
|
||||||
import com.example.mobileapp.ui.theme.BackgroundItem1
|
import com.example.mobileapp.ui.theme.BackgroundItem1
|
||||||
|
import com.example.mobileapp.ui.theme.BackgroundItem2
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ListMailScreen(navController: NavHostController){
|
fun ListMailScreen(navController: NavHostController){
|
||||||
@ -34,7 +34,7 @@ fun ListMailScreen(navController: NavHostController){
|
|||||||
.fillMaxSize(),
|
.fillMaxSize(),
|
||||||
verticalArrangement = Arrangement.Center
|
verticalArrangement = Arrangement.Center
|
||||||
) {
|
) {
|
||||||
NavBar(navController = navController, itemColorFilter = Color.White)
|
NavBar(navController = navController, itemColorFilter = BackgroundItem2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -21,6 +21,7 @@ import androidx.compose.ui.unit.sp
|
|||||||
import androidx.navigation.NavHostController
|
import androidx.navigation.NavHostController
|
||||||
import com.example.mobileapp.R
|
import com.example.mobileapp.R
|
||||||
import com.example.mobileapp.components.NavBar
|
import com.example.mobileapp.components.NavBar
|
||||||
|
import com.example.mobileapp.components.SearchInputField
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun MainScreen(navController: NavHostController) {
|
fun MainScreen(navController: NavHostController) {
|
||||||
@ -28,10 +29,11 @@ fun MainScreen(navController: NavHostController) {
|
|||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxSize()
|
.fillMaxSize()
|
||||||
) {
|
) {
|
||||||
|
SearchInputField()
|
||||||
Column(
|
Column(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.fillMaxHeight(0.9f),
|
.fillMaxHeight(0.89f),
|
||||||
verticalArrangement = Arrangement.Center,
|
verticalArrangement = Arrangement.Center,
|
||||||
horizontalAlignment = Alignment.CenterHorizontally
|
horizontalAlignment = Alignment.CenterHorizontally
|
||||||
) {
|
) {
|
||||||
|
@ -11,6 +11,6 @@ val PurpleGrey40 = Color(0xFF625b71)
|
|||||||
val Pink40 = Color(0xFF7D5260)
|
val Pink40 = Color(0xFF7D5260)
|
||||||
|
|
||||||
val BackgroundItem1 = Color(0xff3a425d)
|
val BackgroundItem1 = Color(0xff3a425d)
|
||||||
val BackgroundItem2 = Color(0xff7b5a94)
|
val BackgroundItem2 = Color(0xffe4ecfc)
|
||||||
val ButtonColor1 = Color(0xffb8d0e0)
|
val ButtonColor1 = Color(0xffb8d0e0)
|
||||||
val ButtonColor2 = Color(0xff3193cd)
|
val ButtonColor2 = Color(0xff3193cd)
|
Loading…
x
Reference in New Issue
Block a user