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

Функция TopAppBar

Функция TopAppBar рисует компактную верхнюю панель. Заголовок передают в лямбду title, обычно с функцией Text. Кнопку слева - в navigationIcon, действия справа - в actions. Панель часто ставят в параметр topBar у Scaffold.

Синтаксис

TopAppBar( title = { Text("abcde") }, navigationIcon = { }, actions = { }, )

Параметры

Параметр Описание
title Лямбда с заголовком панели.
navigationIcon Лямбда с иконкой слева, например меню или назад.
actions Лямбда с кнопками справа. Приёмник - область ряда.
colors Цвета фона, текста и иконок панели.

Пример

Давайте выведем панель только с заголовком:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar import androidx.compose.ui.Modifier class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { Scaffold( topBar = { TopAppBar( title = { Text("abcde") }, ) }, ) { padding -> Text( text = "12345", modifier = Modifier .fillMaxSize() .padding(padding), ) } } } }

На экране сверху будет панель с текстом "abcde".

Пример

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

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

На экране слева на панели будет иконка меню, справа - поиск. По нажатию на поиск заголовок сменится.

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

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