Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
111 of 502 menu
◀ ▶

Функция BottomAppBar

Функция BottomAppBar рисует горизонтальную панель внизу экрана. Кнопки передают в лямбду actions или собирают свой ряд в content. Панель часто ставят в bottomBar у Scaffold.

Синтаксис

BottomAppBar( actions = { IconButton(onClick = { }) { } }, )

Параметры

Параметр Описание
actions Лямбда с иконками и кнопками в ряд.
floatingActionButton Лямбда с круглой кнопкой, которая выступает из панели.
content Лямбда с произвольным содержимым панели вместо готового набора actions.

Пример

Давайте поставим две иконки на нижнюю панель:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Edit import androidx.compose.material.icons.filled.Share import androidx.compose.material3.BottomAppBar import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.ui.Modifier class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Scaffold( bottomBar = { BottomAppBar( actions = { IconButton(onClick = { }) { Icon( imageVector = Icons.Filled.Edit, contentDescription = "abcde", ) } IconButton(onClick = { }) { Icon( imageVector = Icons.Filled.Share, contentDescription = "12345", ) } }, ) }, ) { padding -> Text( text = "abcde", modifier = Modifier.padding(padding), ) } } } }

На экране снизу будет панель с двумя иконками справа.

Пример

Давайте сменим подпись по нажатию на иконку на панели:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.padding import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Refresh import androidx.compose.material3.BottomAppBar import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { var label by remember { mutableStateOf("abcde") } Scaffold( bottomBar = { BottomAppBar( actions = { IconButton( onClick = { label = if (label == "abcde") "12345" else "abcde" }, ) { Icon( imageVector = Icons.Filled.Refresh, contentDescription = "12345", ) } }, ) }, ) { padding -> Text( text = label, modifier = Modifier.padding(padding), ) } } } }

На экране по нажатию на иконку обновления текст на экране переключится.

Смотрите также

  • функция NavigationBar,
    которая рисует нижние вкладки вместо набора actions
  • функция Scaffold,
    которая ставит панель в каркас
  • функция Icon,
    которую кладут в actions
  • функция TopAppBar,
    которая рисует верхнюю панель того же каркаса
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить