У меня есть на главном экране, эта часть кода < /p>
CompositionLocalProvider(LocalAvailableHeight provides availableHeight) {
Box(
modifier = Modifier
.fillMaxSize()
.windowInsetsPadding(WindowInsets.navigationBars)
) {
// Контент
Column(
modifier = Modifier
.fillMaxSize()
.nestedScroll(nestedScrollConnection)
.background(Color.Transparent)
.verticalScroll(scrollState),
) {
// отступ сверху учитывая размеры верхней панельки TopBar
Spacer(
modifier = Modifier.height(with(density){maxTopHeightSpacer.toDp()} )
)
if (!LocalInspectionMode.current && navHostController != null) {
NestedNavigationMain(navHostController)
} else {
var state: FilmHubState by remember { mutableStateOf(FilmHubState()) }
FilmHubContent(state = state)
}
// отступ оставляем только на тех экранах которые имеют навигационную панельку снизу
when (currentRoute) {
FilmHub::class.qualifiedName, Favorite::class.qualifiedName, Menu::class.qualifiedName,
Search::class.qualifiedName, Profile::class.qualifiedName -> {
// отступ снизу учитывая размеры нижней навигационной панельки (FabBottomBar)
Spacer(
modifier = Modifier
.height(barHeight + floatingButtonHeight + (subFabCentralPadding * animFabSpace.value))
)
}
Info::class.qualifiedName -> {
// отступ под плавающую кнопку боковую
Spacer(modifier = Modifier.fillMaxWidth().height(40.dp))
}
else -> {
// не знаю как это влияет, но при добавлении пустого спейсера снизу под каждый экран фиксит баг ТопБара что он немного прокручивается вниз
// scrollTo перестает при первом рендере экрана прокручивать, если убрать топ бар немного опустится вниз и будет видно что страница немного прокрутилась вниз и это при открытии нового экрана
Spacer(modifier = Modifier.fillMaxWidth().height(4.dp))
}
}
}
< /code>
И у меня есть экран, который заменяет indestnavigationmain < /p>
@Composable
fun FavoriteContent(
modifier: Modifier = Modifier,
state: FavoriteState,
country: ECountry = ECountry.UnitedStates,
openInfoMovie: (String, ECountry?, String) -> Unit = {movieId, countryDisplay, author ->},
loadMoreFavoriteFilms: () -> Unit = {},
) {
if (state.favoriteMovieList != null) {
MovieVerticalGrid(
modifier = modifier.heightIn(max = LocalAvailableHeight.current).fillMaxWidth(),
paddingValues = PaddingValues(horizontal = 40.dp),
isLoading = state.favoriteMovieList.isLoading,
endReached = state.favoriteMovieList.endReached,
movieList = state.favoriteMovieList.paginationData.values.toList(),
onItemClicked = {
with(state.favoriteMovieList.paginationData.entries.elementAt(it).value) {
openInfoMovie(this.id, this.countryDisplay, this.author)
}
},
loadMoreFilms = loadMoreFavoriteFilms,
)
} else {
Box(
modifier = Modifier
.fillMaxSize()
.background(Color.Green),
contentAlignment = Alignment.Center
) {
Text(
modifier = Modifier.width(300.dp),
text = stringResource(R.string.favorite_screen_text_info_no_favorite, country),
style = MaterialTheme.typography.bodyMedium,
color = MaterialTheme.colorScheme.primary,
textAlign = TextAlign.Center
)
}
}
}
< /code>
Как добавить для полного размера блока? Когда у меня есть основная колонка с вертикалью. И у меня есть Inside MovieVerticleGrid -> LazyVerticalGrid, который дает сбою, если я добавляю Intrinsicize.max для высоты внешнего столбца. Потому что, если я достигаю этой цели, чтобы сделать полным пространством для коробки, то я могу поместить свой текст в центр внутри коробки < /p>
.fillmaxsize () также не поможет, если я не использую Intrinsicize.max < /p>
Box(
modifier = Modifier
.fillMaxSize()
.background(Color.Green),
contentAlignment = Alignment.Center
) {
< /code>
И расположение для столбца, а не мое решение, потому что я не хочу для всего центра контента. И если я помесчу эту 2 строки, у меня есть сумка с централизованием контента, потому что сначала он загружен сверху, а затем примените централизовать. Может быть, это произошло, потому что я меняю Scrollstate для каждого экрана < /p>
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
Подробнее здесь: https://stackoverflow.com/questions/797 ... ere-all-sc
Как дать коробку полный доступный размер внутри вложенной навигационной навигации (место, где расположены все экраны)? ⇐ Android
Форум для тех, кто программирует под Android
1755278248
Anonymous
У меня есть на главном экране, эта часть кода < /p>
CompositionLocalProvider(LocalAvailableHeight provides availableHeight) {
Box(
modifier = Modifier
.fillMaxSize()
.windowInsetsPadding(WindowInsets.navigationBars)
) {
// Контент
Column(
modifier = Modifier
.fillMaxSize()
.nestedScroll(nestedScrollConnection)
.background(Color.Transparent)
.verticalScroll(scrollState),
) {
// отступ сверху учитывая размеры верхней панельки TopBar
Spacer(
modifier = Modifier.height(with(density){maxTopHeightSpacer.toDp()} )
)
if (!LocalInspectionMode.current && navHostController != null) {
NestedNavigationMain(navHostController)
} else {
var state: FilmHubState by remember { mutableStateOf(FilmHubState()) }
FilmHubContent(state = state)
}
// отступ оставляем только на тех экранах которые имеют навигационную панельку снизу
when (currentRoute) {
FilmHub::class.qualifiedName, Favorite::class.qualifiedName, Menu::class.qualifiedName,
Search::class.qualifiedName, Profile::class.qualifiedName -> {
// отступ снизу учитывая размеры нижней навигационной панельки (FabBottomBar)
Spacer(
modifier = Modifier
.height(barHeight + floatingButtonHeight + (subFabCentralPadding * animFabSpace.value))
)
}
Info::class.qualifiedName -> {
// отступ под плавающую кнопку боковую
Spacer(modifier = Modifier.fillMaxWidth().height(40.dp))
}
else -> {
// не знаю как это влияет, но при добавлении пустого спейсера снизу под каждый экран фиксит баг ТопБара что он немного прокручивается вниз
// scrollTo перестает при первом рендере экрана прокручивать, если убрать топ бар немного опустится вниз и будет видно что страница немного прокрутилась вниз и это при открытии нового экрана
Spacer(modifier = Modifier.fillMaxWidth().height(4.dp))
}
}
}
< /code>
И у меня есть экран, который заменяет indestnavigationmain < /p>
@Composable
fun FavoriteContent(
modifier: Modifier = Modifier,
state: FavoriteState,
country: ECountry = ECountry.UnitedStates,
openInfoMovie: (String, ECountry?, String) -> Unit = {movieId, countryDisplay, author ->},
loadMoreFavoriteFilms: () -> Unit = {},
) {
if (state.favoriteMovieList != null) {
MovieVerticalGrid(
modifier = modifier.heightIn(max = LocalAvailableHeight.current).fillMaxWidth(),
paddingValues = PaddingValues(horizontal = 40.dp),
isLoading = state.favoriteMovieList.isLoading,
endReached = state.favoriteMovieList.endReached,
movieList = state.favoriteMovieList.paginationData.values.toList(),
onItemClicked = {
with(state.favoriteMovieList.paginationData.entries.elementAt(it).value) {
openInfoMovie(this.id, this.countryDisplay, this.author)
}
},
loadMoreFilms = loadMoreFavoriteFilms,
)
} else {
Box(
modifier = Modifier
.fillMaxSize()
.background(Color.Green),
contentAlignment = Alignment.Center
) {
Text(
modifier = Modifier.width(300.dp),
text = stringResource(R.string.favorite_screen_text_info_no_favorite, country),
style = MaterialTheme.typography.bodyMedium,
color = MaterialTheme.colorScheme.primary,
textAlign = TextAlign.Center
)
}
}
}
< /code>
Как добавить для полного размера блока? Когда у меня есть основная колонка с вертикалью. И у меня есть Inside MovieVerticleGrid -> LazyVerticalGrid, который дает сбою, если я добавляю Intrinsicize.max для высоты внешнего столбца. Потому что, если я достигаю этой цели, чтобы сделать полным пространством для коробки, то я могу поместить свой текст в центр внутри коробки < /p>
.fillmaxsize () также не поможет, если я не использую Intrinsicize.max < /p>
Box(
modifier = Modifier
.fillMaxSize()
.background(Color.Green),
contentAlignment = Alignment.Center
) {
< /code>
И расположение для столбца, а не мое решение, потому что я не хочу для всего центра контента. И если я помесчу эту 2 строки, у меня есть сумка с централизованием контента, потому что сначала он загружен сверху, а затем примените централизовать. Может быть, это произошло, потому что я меняю Scrollstate для каждого экрана < /p>
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
Подробнее здесь: [url]https://stackoverflow.com/questions/79735817/how-give-box-full-availeble-size-inside-nestednavigationmain-place-where-all-sc[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия