NTP-21270 | scrolling issue in bottom sheets (#14308)
This commit is contained in:
@@ -33,6 +33,7 @@ import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
@@ -50,6 +51,7 @@ import com.navi.moneymanager.common.model.BankAccount
|
||||
import com.navi.moneymanager.common.model.BankSelectionBottomSheetData
|
||||
import com.navi.moneymanager.common.ui.composable.base.MMText
|
||||
import com.navi.moneymanager.common.ui.theme.color.MMColor
|
||||
import com.navi.moneymanager.common.utils.getEmptyNestedScrollConnection
|
||||
|
||||
@Composable
|
||||
fun BankSelectionBottomSheetContent(
|
||||
@@ -130,7 +132,13 @@ fun BankSelectionBottomSheetContentSection(
|
||||
val scrollState = rememberScrollState()
|
||||
var userSelectedBanks by remember { mutableStateOf(selectedBankReferenceIds ?: setOf()) }
|
||||
Column {
|
||||
Column(modifier = modifier.verticalScroll(scrollState).weight(1f, false)) {
|
||||
Column(
|
||||
modifier =
|
||||
modifier
|
||||
.nestedScroll(getEmptyNestedScrollConnection())
|
||||
.verticalScroll(scrollState)
|
||||
.weight(1f, false)
|
||||
) {
|
||||
bankAccountsList.forEach { bankAccount ->
|
||||
BankAccountItem(
|
||||
checkBoxEnabled = checkBoxEnabled,
|
||||
|
||||
@@ -31,6 +31,7 @@ import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.shadow
|
||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
@@ -46,6 +47,7 @@ import com.navi.moneymanager.common.ui.composable.base.MMDivider
|
||||
import com.navi.moneymanager.common.ui.composable.base.MMImage
|
||||
import com.navi.moneymanager.common.ui.composable.base.MMText
|
||||
import com.navi.moneymanager.common.ui.theme.color.MMColor
|
||||
import com.navi.moneymanager.common.utils.getEmptyNestedScrollConnection
|
||||
import com.navi.naviwidgets.R as naviWidgetsR
|
||||
|
||||
@Composable
|
||||
@@ -127,7 +129,11 @@ fun MonthSelectionBottomSheetUI(
|
||||
?.let { selectedIndex -> scrollState.animateScrollToItem(selectedIndex) }
|
||||
}
|
||||
|
||||
LazyColumn(state = scrollState, modifier = Modifier.fillMaxWidth().weight(1f)) {
|
||||
LazyColumn(
|
||||
state = scrollState,
|
||||
modifier =
|
||||
Modifier.fillMaxWidth().weight(1f).nestedScroll(getEmptyNestedScrollConnection())
|
||||
) {
|
||||
val monthList = data.monthList
|
||||
items(monthList.size) { index ->
|
||||
val (monthName, year) = monthList[index]
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
*
|
||||
* * Copyright © 2024 by Navi Technologies Limited
|
||||
* * All rights reserved. Strictly confidential
|
||||
*
|
||||
*/
|
||||
|
||||
package com.navi.moneymanager.common.utils
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.geometry.Offset
|
||||
import androidx.compose.ui.input.nestedscroll.NestedScrollConnection
|
||||
import androidx.compose.ui.input.nestedscroll.NestedScrollSource
|
||||
import androidx.compose.ui.unit.Velocity
|
||||
|
||||
@Composable
|
||||
fun getEmptyNestedScrollConnection(): NestedScrollConnection {
|
||||
return remember {
|
||||
object : NestedScrollConnection {
|
||||
override fun onPreScroll(available: Offset, source: NestedScrollSource): Offset =
|
||||
Offset.Zero
|
||||
|
||||
override suspend fun onPreFling(available: Velocity): Velocity = Velocity.Zero
|
||||
|
||||
override fun onPostScroll(
|
||||
consumed: Offset,
|
||||
available: Offset,
|
||||
source: NestedScrollSource
|
||||
): Offset = available
|
||||
|
||||
override suspend fun onPostFling(consumed: Velocity, available: Velocity): Velocity =
|
||||
Velocity.Zero
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -26,6 +26,7 @@ import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.navi.common.utils.onClickWithDebounce
|
||||
@@ -41,6 +42,7 @@ import com.navi.moneymanager.common.ui.composable.base.MMDivider
|
||||
import com.navi.moneymanager.common.ui.composable.base.MMImage
|
||||
import com.navi.moneymanager.common.ui.composable.base.MMText
|
||||
import com.navi.moneymanager.common.ui.theme.color.MMColor
|
||||
import com.navi.moneymanager.common.utils.getEmptyNestedScrollConnection
|
||||
import com.navi.moneymanager.postonboard.categorydetails.model.CategorySelectionBottomSheetData
|
||||
import com.navi.naviwidgets.R as NaviWidgetsR
|
||||
|
||||
@@ -88,7 +90,11 @@ fun CategorySelectionBottomSheetContent(
|
||||
}
|
||||
}
|
||||
|
||||
LazyColumn(state = scrollState, modifier = Modifier.fillMaxWidth().weight(1f)) {
|
||||
LazyColumn(
|
||||
state = scrollState,
|
||||
modifier =
|
||||
Modifier.fillMaxWidth().weight(1f).nestedScroll(getEmptyNestedScrollConnection())
|
||||
) {
|
||||
val categoryList = data.categoryList
|
||||
items(categoryList.size) { index ->
|
||||
data.categoryList[index].let {
|
||||
|
||||
@@ -21,6 +21,7 @@ import androidx.compose.foundation.verticalScroll
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
@@ -31,6 +32,7 @@ import com.navi.moneymanager.common.ui.composable.ChipListWithSingleSelection
|
||||
import com.navi.moneymanager.common.ui.composable.base.MMDivider
|
||||
import com.navi.moneymanager.common.ui.composable.base.MMText
|
||||
import com.navi.moneymanager.common.ui.theme.color.MMColor
|
||||
import com.navi.moneymanager.common.utils.getEmptyNestedScrollConnection
|
||||
import com.navi.moneymanager.postonboard.monthlysummary.model.AddCategoryContentData
|
||||
import com.navi.moneymanager.postonboard.monthlysummary.model.ChipsContainerData
|
||||
import com.navi.moneymanager.postonboard.monthlysummary.model.TransactionDetails
|
||||
@@ -129,7 +131,10 @@ fun AddCategoryChipsContainer(
|
||||
) {
|
||||
|
||||
val scrollState = rememberScrollState()
|
||||
Column(modifier = modifier.verticalScroll(scrollState)) {
|
||||
Column(
|
||||
modifier =
|
||||
modifier.nestedScroll(getEmptyNestedScrollConnection()).verticalScroll(scrollState)
|
||||
) {
|
||||
Spacer(modifier.height(24.dp))
|
||||
MMText(
|
||||
text = containerData.categoriesData.categoriesTitle,
|
||||
|
||||
@@ -27,6 +27,7 @@ import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
@@ -40,6 +41,7 @@ import com.navi.moneymanager.common.illustration.ui.Illustration
|
||||
import com.navi.moneymanager.common.ui.composable.base.MMDivider
|
||||
import com.navi.moneymanager.common.ui.composable.base.MMText
|
||||
import com.navi.moneymanager.common.ui.theme.color.MMColor
|
||||
import com.navi.moneymanager.common.utils.getEmptyNestedScrollConnection
|
||||
import com.navi.moneymanager.common.utils.noIndicationToggleable
|
||||
import com.navi.moneymanager.postonboard.monthlysummary.model.CategoryTransactionContentData
|
||||
import com.navi.moneymanager.postonboard.monthlysummary.model.TransactionItemData
|
||||
@@ -96,7 +98,10 @@ fun TransactionList(
|
||||
transactions: List<TransactionItemData>,
|
||||
selectedTransactionsItems: MutableList<TransactionItemData>,
|
||||
) {
|
||||
LazyColumn(modifier = Modifier.padding(horizontal = 16.dp)) {
|
||||
LazyColumn(
|
||||
modifier =
|
||||
Modifier.padding(horizontal = 16.dp).nestedScroll(getEmptyNestedScrollConnection())
|
||||
) {
|
||||
itemsIndexed(transactions) { index, transaction ->
|
||||
TransactionItem(transaction, selectedTransactionsItems, transaction)
|
||||
if (index < transactions.lastIndex) {
|
||||
|
||||
@@ -26,6 +26,7 @@ import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.navi.design.font.FontWeightEnum
|
||||
@@ -40,6 +41,7 @@ import com.navi.moneymanager.common.ui.composable.base.MMText
|
||||
import com.navi.moneymanager.common.ui.composable.spendCategoriztion.SpendCategoryItem
|
||||
import com.navi.moneymanager.common.ui.theme.color.MMColor
|
||||
import com.navi.moneymanager.common.utils.fourDpRoundedShape
|
||||
import com.navi.moneymanager.common.utils.getEmptyNestedScrollConnection
|
||||
import com.navi.moneymanager.postonboard.spendanalysis.model.OtherCategoriesBottomSheetData
|
||||
import com.navi.moneymanager.postonboard.spendanalysis.model.OtherCategoriesBottomSheetHeaderData
|
||||
|
||||
@@ -130,7 +132,13 @@ fun OtherCategoriesBottomSheetCategoriesSection(
|
||||
trackCategoryItemView: (Int, String) -> Unit,
|
||||
modifier: Modifier = Modifier
|
||||
) {
|
||||
Column(modifier = modifier.fillMaxWidth().verticalScroll(rememberScrollState())) {
|
||||
Column(
|
||||
modifier =
|
||||
modifier
|
||||
.fillMaxWidth()
|
||||
.nestedScroll(getEmptyNestedScrollConnection())
|
||||
.verticalScroll(rememberScrollState())
|
||||
) {
|
||||
Spacer(modifier = Modifier.height(16.dp))
|
||||
categories.forEachIndexed { index, categoryItemData ->
|
||||
SpendCategoryItem(
|
||||
|
||||
@@ -31,6 +31,7 @@ import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.drawBehind
|
||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
@@ -57,6 +58,7 @@ import com.navi.moneymanager.common.illustration.ui.Illustration
|
||||
import com.navi.moneymanager.common.ui.composable.base.MMDivider
|
||||
import com.navi.moneymanager.common.ui.composable.base.MMText
|
||||
import com.navi.moneymanager.common.ui.theme.color.MMColor
|
||||
import com.navi.moneymanager.common.utils.getEmptyNestedScrollConnection
|
||||
import com.navi.moneymanager.postonboard.transactionhistory.model.TransactionHistoryScreenUiEffect
|
||||
import com.navi.moneymanager.postonboard.transactionhistory.model.TransactionHistoryScreenUiEvent
|
||||
import com.navi.moneymanager.postonboard.transactionhistory.model.TransactionHistoryScreenUiState
|
||||
@@ -138,6 +140,7 @@ fun TransactionHistoryBottomSheetContent(
|
||||
Modifier.weight(0.62F)
|
||||
.fillMaxHeight()
|
||||
.background(MMColor.white)
|
||||
.nestedScroll(getEmptyNestedScrollConnection())
|
||||
.verticalScroll(rememberScrollState())
|
||||
) {
|
||||
val selectedFilterKey =
|
||||
|
||||
Reference in New Issue
Block a user