Fixed buttons.
This commit is contained in:
parent
cd11e57a11
commit
75dfa46ae8
1 changed files with 44 additions and 6 deletions
|
@ -1,5 +1,6 @@
|
||||||
package com.bbc.denadrive.home
|
package com.bbc.denadrive.home
|
||||||
|
|
||||||
|
import androidx.compose.animation.core.animateFloatAsState
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.material3.Button
|
import androidx.compose.material3.Button
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
|
@ -17,6 +18,7 @@ import androidx.navigation.NavHostController
|
||||||
//import androidx.compose.ui.unit.sp
|
//import androidx.compose.ui.unit.sp
|
||||||
|
|
||||||
import androidx.compose.foundation.clickable
|
import androidx.compose.foundation.clickable
|
||||||
|
import androidx.compose.foundation.gestures.detectTapGestures
|
||||||
import androidx.compose.foundation.layout.*
|
import androidx.compose.foundation.layout.*
|
||||||
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
|
||||||
|
@ -25,7 +27,9 @@ import androidx.compose.material3.*
|
||||||
import androidx.compose.runtime.*
|
import androidx.compose.runtime.*
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.draw.scale
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
|
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
|
||||||
|
@ -63,13 +67,13 @@ fun ScaffoldWithSidebar() {
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxHeight()
|
.fillMaxHeight()
|
||||||
.fillMaxWidth(0.67f)
|
.fillMaxWidth(0.67f)
|
||||||
.background(Color.Red)
|
.background(Color.White)
|
||||||
) {
|
) {
|
||||||
Text("Item 1", modifier = Modifier.clickable { /* Handle click */ })
|
RectangularButton(backgroundColor = Color.White, text = "Text 1") { }
|
||||||
Spacer(modifier = Modifier.height(8.dp))
|
Spacer(modifier = Modifier.height(10.dp))
|
||||||
Text("Item 2", modifier = Modifier.clickable { /* Handle click */ })
|
RectangularButton(backgroundColor = Color.White, text = "Text 2") { }
|
||||||
Spacer(modifier = Modifier.height(8.dp))
|
Spacer(modifier = Modifier.height(10.dp))
|
||||||
Text("Item 3", modifier = Modifier.clickable { /* Handle click */ })
|
RectangularButton(backgroundColor = Color.White, text = "Text 3") { }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
content = {
|
content = {
|
||||||
|
@ -112,6 +116,40 @@ fun ScaffoldWithSidebar() {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun RectangularButton(
|
||||||
|
backgroundColor: Color,
|
||||||
|
text: String,
|
||||||
|
onClick: () -> Unit
|
||||||
|
) {
|
||||||
|
var isPressed by remember { mutableStateOf(false) }
|
||||||
|
val scale by animateFloatAsState(if (isPressed) 0.8f else 1f)
|
||||||
|
|
||||||
|
Box(
|
||||||
|
modifier = Modifier
|
||||||
|
.padding(8.dp)
|
||||||
|
.fillMaxWidth()
|
||||||
|
.height(48.dp) // Set the height of the button
|
||||||
|
.background(color = backgroundColor) // Set the background color
|
||||||
|
.scale(scale) // Apply the scale effect
|
||||||
|
.pointerInput(Unit) {
|
||||||
|
// Detect press and release gestures
|
||||||
|
detectTapGestures(
|
||||||
|
onPress = {
|
||||||
|
isPressed = true
|
||||||
|
// Wait for the click to be released
|
||||||
|
tryAwaitRelease()
|
||||||
|
isPressed = false
|
||||||
|
},
|
||||||
|
onTap = { onClick() } // Call the onClick action
|
||||||
|
)
|
||||||
|
},
|
||||||
|
contentAlignment = Alignment.Center // Center the text
|
||||||
|
) {
|
||||||
|
Text(text = text, style = MaterialTheme.typography.bodyLarge) // Button text
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun MyApp() {
|
fun MyApp() {
|
||||||
ScaffoldWithSidebar()
|
ScaffoldWithSidebar()
|
||||||
|
|
Loading…
Add table
Reference in a new issue