NTP-21270 | scrolling issue in bottom sheets (#14308)

This commit is contained in:
Kishan Kumar
2024-12-24 13:10:26 +05:30
committed by GitHub
parent 9328ea132d
commit 90bc73da73
8 changed files with 83 additions and 6 deletions

View File

@@ -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,

View File

@@ -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]

View File

@@ -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
}
}
}

View File

@@ -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 {

View File

@@ -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,

View File

@@ -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) {

View File

@@ -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(

View File

@@ -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 =