Я использую JetPack Compose, и я пытаюсь включить открытие модалнавигационного пласта через жест (слева направо), аналогичный тому, как это делает Twitter. У меня есть HorizontalPager, который занимает весь экран, и, хотя я могу открыть ящик, постучав по значке в верхней панели и сбиваясь с него, смахивание изнутри HorizontalPgeer не запускает ящик для открытия.
Я ожидаю, что ModalnavigationDrawer откроется при проведении слева направо на первой странице (index = 0) HorizontalPager, в то же время позволяя горизонтальным ударам между страницами на других страницах. < /p>
Мой код является следующим: < /p>
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun TestNavigationDrawer() {
val drawerState = rememberDrawerState(DrawerValue.Closed)
val pagerState = rememberPagerState(initialPage = 0) { 2 }
val scope = rememberCoroutineScope()
ModalNavigationDrawer(
drawerState = drawerState,
drawerContent = {
Column(
Modifier.fillMaxSize().padding(end = 64.dp)
.background(MaterialTheme.colorScheme.surface)
.systemBarsPadding().systemBarsPadding()
) {
Text("Navigation Drawer")
}
}
) {
Scaffold(topBar = {
CenterAlignedTopAppBar(
title = { Text("Top bar") },
navigationIcon = {
IconButton(onClick = {
scope.launch {
drawerState.open()
}
}
) {
Icon(imageVector = Icons.Default.Info, contentDescription = null)
}
})
}) { innerPadding ->
Box(modifier = Modifier.fillMaxSize().padding(innerPadding)) {
HorizontalPager(modifier = Modifier.fillMaxSize(), state = pagerState) { page ->
when (page) {
0 -> Text("Page 0")
1 -> Text("Page 1")
}
}
}
}
}
}
< /code>
Это GIF с текущим поведением моего кода. Я могу открыть ящик, нажав на значок и пройдя с верхней панели. /Kxlczdgy.gif " /> < /p>
Подробнее здесь: https://stackoverflow.com/questions/794 ... -full-scre
Как включить жест смахивания для открытия модалнавигационного ростера при использовании полноэкранного HorizontalPager в ⇐ Android
Форум для тех, кто программирует под Android
1739367322
Anonymous
Я использую JetPack Compose, и я пытаюсь включить открытие модалнавигационного пласта через жест (слева направо), аналогичный тому, как это делает Twitter. У меня есть HorizontalPager, который занимает весь экран, и, хотя я могу открыть ящик, постучав по значке в верхней панели и сбиваясь с него, смахивание изнутри HorizontalPgeer не запускает ящик для открытия.
Я ожидаю, что ModalnavigationDrawer откроется при проведении слева направо на первой странице (index = 0) HorizontalPager, в то же время позволяя горизонтальным ударам между страницами на других страницах. < /p>
Мой код является следующим: < /p>
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun TestNavigationDrawer() {
val drawerState = rememberDrawerState(DrawerValue.Closed)
val pagerState = rememberPagerState(initialPage = 0) { 2 }
val scope = rememberCoroutineScope()
ModalNavigationDrawer(
drawerState = drawerState,
drawerContent = {
Column(
Modifier.fillMaxSize().padding(end = 64.dp)
.background(MaterialTheme.colorScheme.surface)
.systemBarsPadding().systemBarsPadding()
) {
Text("Navigation Drawer")
}
}
) {
Scaffold(topBar = {
CenterAlignedTopAppBar(
title = { Text("Top bar") },
navigationIcon = {
IconButton(onClick = {
scope.launch {
drawerState.open()
}
}
) {
Icon(imageVector = Icons.Default.Info, contentDescription = null)
}
})
}) { innerPadding ->
Box(modifier = Modifier.fillMaxSize().padding(innerPadding)) {
HorizontalPager(modifier = Modifier.fillMaxSize(), state = pagerState) { page ->
when (page) {
0 -> Text("Page 0")
1 -> Text("Page 1")
}
}
}
}
}
}
< /code>
Это GIF с текущим поведением моего кода. Я могу открыть ящик, нажав на значок и пройдя с верхней панели. /Kxlczdgy.gif " /> < /p>
Подробнее здесь: [url]https://stackoverflow.com/questions/79414590/how-to-enable-swipe-gesture-to-open-modalnavigationdrawer-when-using-a-full-scre[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия