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

Метод partialExpand

Метод partialExpand класса SheetState ставит ModalBottomSheet в промежуточную высоту между скрытым и полностью раскрытым видом. Это suspend-функция. Если при создании состояния стоит skipPartiallyExpanded = true, промежуточное положение недоступно.

Синтаксис

sheetState.partialExpand()

Пример

Давайте после expand вернём лист на половину экрана:

import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.material3.Button import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ModalBottomSheet import androidx.compose.material3.Text import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import kotlinx.coroutines.launch @OptIn(ExperimentalMaterial3Api::class) class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { val sheetState = rememberModalBottomSheetState() val scope = rememberCoroutineScope() var open by remember { mutableStateOf(true) } if (open) { ModalBottomSheet( onDismissRequest = { open = false }, sheetState = sheetState, ) { Button(onClick = { scope.launch { sheetState.partialExpand() } }) { Text(text = "abcde") } } } } } }

На экране лист опустится до стандартной частичной высоты Material3.

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

  • метод expand,
    который раскрывает лист на всю высоту
  • класс SheetState,
    у которого объявлен partialExpand
  • функция rememberModalBottomSheetState,
    где задают skipPartiallyExpanded
  • метод hide,
    который полностью прячет лист
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить