Membuat Home Screen Simple Login
Alif Adrian Anzary - 5025201274
Pada tugas kali ini kita akan diajak untuk membuat halaman login sederhana dengan hasil dan code sebagai berikut:
package com.example.mylogin | |
import android.util.Log | |
import androidx.compose.foundation.Image | |
import androidx.compose.foundation.clickable | |
import androidx.compose.foundation.layout.Arrangement | |
import androidx.compose.foundation.layout.Column | |
import androidx.compose.foundation.layout.Row | |
import androidx.compose.foundation.layout.Spacer | |
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.layout.size | |
import androidx.compose.material3.Button | |
import androidx.compose.material3.ExperimentalMaterial3Api | |
import androidx.compose.material3.OutlinedTextField | |
import androidx.compose.material3.Text | |
import androidx.compose.runtime.Composable | |
import androidx.compose.runtime.* | |
import androidx.compose.runtime.mutableStateOf | |
import androidx.compose.runtime.remember | |
import androidx.compose.ui.Alignment | |
import androidx.compose.ui.Modifier | |
import androidx.compose.ui.res.painterResource | |
import androidx.compose.ui.text.font.FontWeight | |
import androidx.compose.ui.text.input.PasswordVisualTransformation | |
import androidx.compose.ui.tooling.preview.Preview | |
import androidx.compose.ui.unit.dp | |
import androidx.compose.ui.unit.sp | |
@OptIn(ExperimentalMaterial3Api::class) | |
@Composable | |
fun LoginScreen () { | |
var email by remember { | |
mutableStateOf("") | |
} | |
var password by remember { | |
mutableStateOf("") | |
} | |
Column( | |
modifier = Modifier.fillMaxSize(), | |
verticalArrangement = Arrangement.Center, | |
horizontalAlignment = Alignment.CenterHorizontally | |
) { | |
Image(painter = painterResource(id = R.drawable.bglogin), contentDescription = "Login Image", | |
modifier = Modifier.size(200.dp)) | |
Text(text = "Welcome Back", fontSize = 28.sp, fontWeight = FontWeight.Bold) | |
Spacer(modifier = Modifier.height(4.dp)) | |
Text(text = "Login to your account") | |
Spacer(modifier = Modifier.height(16.dp)) | |
OutlinedTextField(value = email , onValueChange = { | |
email = it }, label = { | |
Text(text = "Email address") | |
}) | |
Spacer(modifier = Modifier.height(16.dp)) | |
OutlinedTextField(value = password , onValueChange = { | |
password = it }, label = { | |
Text(text = "Password") | |
}, visualTransformation = PasswordVisualTransformation()) | |
Spacer(modifier = Modifier.height(16.dp)) | |
Button(onClick = { | |
Log.i("Credential", "Email : $email Password : $password") | |
}) { | |
Text(text = "Login") | |
} | |
Spacer(modifier = Modifier.height(32.dp)) | |
Text(text = "Forgot Password?", modifier = Modifier.clickable { }) | |
Spacer(modifier = Modifier.height(32.dp)) | |
Text(text = "Or sign in with") | |
Row ( | |
modifier = Modifier.fillMaxWidth().padding(40.dp), | |
horizontalArrangement = Arrangement.SpaceEvenly | |
){ | |
Image(painter = painterResource(id = R.drawable.facebook), | |
contentDescription = "Facebook", | |
modifier = Modifier | |
.size(60.dp) | |
.clickable { | |
}) | |
Image(painter = painterResource(id = R.drawable.google), contentDescription = "Google", | |
modifier = Modifier | |
.size(60.dp) | |
.clickable { | |
}) | |
Image(painter = painterResource(id = R.drawable.twitter), | |
contentDescription = "Twitter", | |
modifier = Modifier | |
.size(60.dp) | |
.clickable { | |
}) | |
} | |
} | |
} | |
@Preview(showBackground = true, showSystemUi = true, name = "My Preview" ) | |
@Composable | |
fun LoginScreenPreview(){ | |
LoginScreen() | |
} |
Comments
Post a Comment