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

Функция FlowRow

Функция FlowRow раскладывает дочерние элементы слева направо и переносит лишние на новую строку. Дочерние элементы передаются в лямбду content. Вдоль строки работает horizontalArrangement, между строками - verticalArrangement, поперёк строки - itemVerticalAlignment. Параметры maxItemsInEachRow и maxLines ограничивают число элементов и строк.

Синтаксис

FlowRow { child1() child2() }

Параметры

Параметр Описание
content Лямбда с дочерними элементами. Элементы идут по строкам в порядке записи.
horizontalArrangement Распределение дочерних элементов вдоль строки. Принимает значение класса Arrangement.
verticalArrangement Распределение строк друг относительно друга по вертикали. Принимает значение класса Arrangement.
itemVerticalAlignment Выравнивание элементов поперёк строки. Принимает значение класса Alignment.
maxItemsInEachRow Сколько элементов может стоять в одной строке. По умолчанию ограничения нет.
maxLines Максимальное число строк. Лишние элементы обрабатывает параметр overflow.
overflow Поведение, когда элементы не помещаются в заданные maxLines или ширину.

Пример

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

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.FlowRow import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.material3.Text import androidx.compose.ui.Modifier class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { FlowRow( modifier = Modifier.fillMaxWidth(), ) { Text(text = "abcde") Text(text = "12345") Text(text = "abcde") Text(text = "12345") } } } }

На экране тексты выстроятся в ряд и перенесутся на следующую строку, когда ширина экрана не хватит.

Пример

Давайте ограничим число элементов в строке:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.layout.FlowRow import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.material3.Text import androidx.compose.ui.Modifier class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { FlowRow( modifier = Modifier.fillMaxWidth(), maxItemsInEachRow = 2, ) { Text(text = "abcde") Text(text = "12345") Text(text = "abcde") Text(text = "12345") } } } }

На экране в каждой строке окажется не больше двух текстов, остальные уйдут на следующую строку.

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

  • функция FlowColumn,
    которая переносит элементы на следующий столбец
  • функция Row,
    которая ставит все элементы в одну строку без переноса
  • класс Arrangement,
    который задаёт зазоры между элементами и строками
  • класс Alignment,
    который выравнивает элементы поперёк строки
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить