#67 fab unfixed pos

This commit is contained in:
Tibo De Peuter 2023-05-01 21:33:51 +02:00
parent f74da5abc3
commit e65c2fe002
4 changed files with 58 additions and 26 deletions

View file

@ -2,7 +2,10 @@ package be.ugent.sel.studeez.common.composable
import androidx.compose.animation.core.animateFloat import androidx.compose.animation.core.animateFloat
import androidx.compose.animation.core.updateTransition import androidx.compose.animation.core.updateTransition
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.padding
import androidx.compose.material.FloatingActionButton import androidx.compose.material.FloatingActionButton
import androidx.compose.material.Icon import androidx.compose.material.Icon
import androidx.compose.material.IconButton import androidx.compose.material.IconButton
@ -16,9 +19,12 @@ 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.rotate import androidx.compose.ui.draw.rotate
import androidx.compose.ui.graphics.vector.ImageVector
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
import be.ugent.sel.studeez.resources
import be.ugent.sel.studeez.ui.theme.StudeezTheme import be.ugent.sel.studeez.ui.theme.StudeezTheme
import be.ugent.sel.studeez.R.string as AppText
const val TRANSITION = "transition" const val TRANSITION = "transition"
val HEIGHT_DIFFERENCE = 30.dp val HEIGHT_DIFFERENCE = 30.dp
@ -56,7 +62,9 @@ fun AddButton(
) { ) {
// Show minis when expanded. // Show minis when expanded.
if (multiFloatingState == MultiFloatingState.Expanded) { if (multiFloatingState == MultiFloatingState.Expanded) {
ExpandedAddButton(addButtonActions = addButtonActions) ExpandedAddButton(
addButtonActions = addButtonActions
)
} }
// The base add button // The base add button
@ -83,35 +91,57 @@ fun ExpandedAddButton(
addButtonActions: AddButtonActions addButtonActions: AddButtonActions
) { ) {
Row { Row {
IconButton( ExpandedEntry(
name = AppText.task,
imageVector = Icons.Default.Check,
onClick = addButtonActions.onTaskClick, onClick = addButtonActions.onTaskClick,
modifier = Modifier.padding(36.dp, HEIGHT_DIFFERENCE, 36.dp, 0.dp) modifier = Modifier.padding(36.dp, HEIGHT_DIFFERENCE, 36.dp, 0.dp)
) { )
Column (horizontalAlignment = Alignment.CenterHorizontally) {
Icon(imageVector = Icons.Default.Check, contentDescription = "Task")
Text(text = "Task")
}
}
IconButton(onClick = addButtonActions.onFriendClick) { ExpandedEntry(
Column (horizontalAlignment = Alignment.CenterHorizontally) { name = AppText.friend,
Icon(imageVector = Icons.Default.Person, contentDescription = "Friend") imageVector = Icons.Default.Person,
Text(text = "Friend") onClick = addButtonActions.onFriendClick
} )
}
IconButton( ExpandedEntry(
name = AppText.session,
imageVector = Icons.Default.DateRange,
onClick = addButtonActions.onSessionClick, onClick = addButtonActions.onSessionClick,
modifier = Modifier.padding(36.dp, HEIGHT_DIFFERENCE, 36.dp, 0.dp) modifier = Modifier.padding(36.dp, HEIGHT_DIFFERENCE, 36.dp, 0.dp)
) { )
Column(horizontalAlignment = Alignment.CenterHorizontally) {
Icon(imageVector = Icons.Default.DateRange, contentDescription = "Session")
Text(text = "Session")
}
}
} }
} }
@Composable
fun ExpandedEntry(
name: Int,
imageVector: ImageVector,
onClick: () -> Unit,
modifier: Modifier = Modifier
) {
IconButton(
onClick = onClick,
modifier = modifier
) {
Column(horizontalAlignment = Alignment.CenterHorizontally) {
Icon(
imageVector = imageVector,
contentDescription = resources().getString(name),
// TODO Dark overlay
// tint = colors.surface
)
Text(
text = resources().getString(name),
// TODO Dark overlay
// color = colors.surface
)
}
}
}
@Preview @Preview
@Composable @Composable
fun AddButtonPreview() { fun AddButtonPreview() {
@ -123,7 +153,7 @@ fun AddButtonPreview() {
@Preview @Preview
@Composable @Composable
fun ExpandedAddButtonPreview() { fun ExpandedAddButtonPreview() {
StudeezTheme { ExpandedAddButton( StudeezTheme { ExpandedAddButton (
addButtonActions = AddButtonActions({}, {}, {}) addButtonActions = AddButtonActions({}, {}, {})
) } ) }
} }

View file

@ -56,7 +56,7 @@ fun PrimaryScreenTemplate(
bottomBar = { NavigationBar(navigationBarActions) }, bottomBar = { NavigationBar(navigationBarActions) },
floatingActionButtonPosition = FabPosition.Center, floatingActionButtonPosition = FabPosition.Center,
isFloatingActionButtonDocked = false, isFloatingActionButtonDocked = true,
floatingActionButton = { AddButton(AddButtonActions( floatingActionButton = { AddButton(AddButtonActions(
onTaskClick = navigationBarActions.onAddTaskClick, onTaskClick = navigationBarActions.onAddTaskClick,
onFriendClick = navigationBarActions.onAddFriendClick, onFriendClick = navigationBarActions.onAddFriendClick,

View file

@ -95,7 +95,7 @@ fun NavigationBar(
) )
// Hack to space the entries in the navigation bar, make space for fab // Hack to space the entries in the navigation bar, make space for fab
BottomNavigationItem(icon = {}, onClick = {}, selected = false) BottomNavigationItem(icon = {}, onClick = {}, selected = false, enabled = false)
BottomNavigationItem( BottomNavigationItem(
icon = { icon = {

View file

@ -12,7 +12,9 @@ import androidx.compose.ui.graphics.Color
private val DarkColorPalette = darkColors( private val DarkColorPalette = darkColors(
primary = Blue100, primary = Blue100,
primaryVariant = Blue120, primaryVariant = Blue120,
secondary = Yellow100 secondary = Yellow100,
onPrimary = Color.White
) )
private val LightColorPalette = lightColors( private val LightColorPalette = lightColors(