Как установить высоту по умолчанию для ExtendedFloatingActionButton в Jetpack Compose

Как можно применить высоту по умолчанию для ExtendedFloatingActionButton в Jetpack Compose, чтобы можно было увидеть тень? Понятно, что уровень покоя по умолчанию — номер 3, а высота по умолчанию — 6 dp, но использование elevation = 6.dp не сработало, так какой еще есть метод?

ExtendedFloatingActionButton(
    text = { Text(text = "Button") },
    icon = { Icon(Icons.Filled.Add, "") },
    modifier = Modifier.clip(RoundedCornerShape(16.dp)),
    elevation = FloatingActionButtonElevation.?
)
0
0
84
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Значения по умолчанию, возможно, в цветах, высотах или где-либо еще, должны использоваться следующим образом.

ExtendedFloatingActionButton(
    text = { Text(text = "Button") },
    icon = { Icon(Icons.Filled.Add, "") },
    modifier = Modifier.clip(RoundedCornerShape(16.dp)),
    elevation = FloatingActionButtonDefaults.elevation(
        defaultElevation = 4.dp,
        pressedElevation = 8.dp,
        hoveredElevation = 2.dp,
        focusedElevation = 1.dp,
    ),
    onClick = {}
)

Это значения dp по умолчанию для плавающей кнопки действия? Есть ли какой-либо документ, указывающий, какой тип высоты должен иметь какое dp значение?

wbk727 17.12.2022 08:30
Ответ принят как подходящий

В M3 высота по умолчанию определяется с помощью FloatingActionButtonDefaults.elevation().
Если вы хотите значение по умолчанию, просто опустите его. Вы также можете переопределить значения по умолчанию с помощью:

ExtendedFloatingActionButton(
    //..
    elevation = FloatingActionButtonDefaults.elevation(
        defaultElevation = 4.dp
    )
)

Он определяет высоту ExtendedFloatingActionButton в разных состояниях.

@Composable
fun elevation(
    defaultElevation: Dp = FabPrimaryTokens.ContainerElevation, //6.0.dp
    pressedElevation: Dp = FabPrimaryTokens.PressedContainerElevation, //6.0.dp
    focusedElevation: Dp = FabPrimaryTokens.FocusContainerElevation, //6.0.dp
    hoveredElevation: Dp = FabPrimaryTokens.HoverContainerElevation //8.0.dp
): FloatingActionButtonElevation

Вы можете увидеть в исходном коде :

val ContainerElevation = ElevationTokens.Level3
val PressedContainerElevation = ElevationTokens.Level3
val FocusContainerElevation = ElevationTokens.Level3
val HoverContainerElevation = ElevationTokens.Level4

С M2 подход аналогичен, и значения по умолчанию определяются FloatingActionButtonDefaults.elevation():

@Composable
fun elevation(
    defaultElevation: Dp = 6.dp,
    pressedElevation: Dp = 12.dp,
    hoveredElevation: Dp = 8.dp,
    focusedElevation: Dp = 8.dp,
)

Другие вопросы по теме