diff --git a/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/message/MessageList.kt b/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/message/MessageList.kt index 2c2df30..8ee8928 100644 --- a/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/message/MessageList.kt +++ b/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/message/MessageList.kt @@ -12,6 +12,7 @@ import androidx.compose.foundation.layout.asPaddingValues import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.navigationBars import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.systemBars @@ -55,7 +56,8 @@ fun NotificationsScreen() { var dataFlow = MessageListViewModel.commentItemsFlow var comments = dataFlow.collectAsLazyPagingItems() val statusBarPaddingValues = WindowInsets.systemBars.asPaddingValues() - + val navigationBarPaddings = + WindowInsets.navigationBars.asPaddingValues().calculateBottomPadding() + 48.dp LaunchedEffect(Unit) { systemUiController.setNavigationBarColor(Color.Transparent) MessageListViewModel.initData() @@ -64,7 +66,12 @@ fun NotificationsScreen() { modifier = Modifier.fillMaxSize() ) { - Spacer(modifier = Modifier.padding(statusBarPaddingValues.calculateTopPadding())) + Spacer( + modifier = Modifier.padding( + top = statusBarPaddingValues.calculateTopPadding(), + bottom = navigationBarPaddings + ) + ) Box( modifier = Modifier .fillMaxWidth() diff --git a/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/moment/Moment.kt b/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/moment/Moment.kt index 5f5b9c3..8069bde 100644 --- a/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/moment/Moment.kt +++ b/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/moment/Moment.kt @@ -20,6 +20,7 @@ import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.navigationBars import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.systemBars @@ -95,6 +96,8 @@ fun MomentsList() { val state = rememberPullRefreshState(refreshing, onRefresh = { model.refreshPager() }) + val navigationBarPaddings = + WindowInsets.navigationBars.asPaddingValues().calculateBottomPadding() + 48.dp LaunchedEffect(moments.loadState) { if (moments.loadState.refresh is LoadState.Loading) { refreshing = true @@ -108,6 +111,7 @@ fun MomentsList() { .fillMaxSize() .padding( top = statusBarPaddingValues.calculateTopPadding(), + bottom = navigationBarPaddings ) ) { Box(Modifier.pullRefresh(state)) { diff --git a/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/profile/Profile.kt b/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/profile/Profile.kt index daacc6e..7015618 100644 --- a/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/profile/Profile.kt +++ b/app/src/main/java/com/aiosman/riderpro/ui/index/tabs/profile/Profile.kt @@ -20,6 +20,7 @@ import androidx.compose.foundation.layout.aspectRatio import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.navigationBars import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.systemBars @@ -46,6 +47,7 @@ import androidx.compose.ui.draw.shadow import androidx.compose.ui.graphics.Color import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontWeight @@ -63,6 +65,7 @@ import com.aiosman.riderpro.exp.formatPostTime import com.aiosman.riderpro.entity.MomentEntity import com.aiosman.riderpro.ui.NavigationRoute import com.aiosman.riderpro.ui.composables.CustomAsyncImage +import com.aiosman.riderpro.ui.composables.StatusBarMaskLayout import com.aiosman.riderpro.ui.index.tabs.moment.MomentCard import com.aiosman.riderpro.ui.modifiers.noRippleClickable import com.aiosman.riderpro.ui.post.PostViewModel @@ -81,9 +84,14 @@ fun ProfilePage() { val navController: NavController = LocalNavController.current val scope = rememberCoroutineScope() val statusBarPaddingValues = WindowInsets.systemBars.asPaddingValues() + val navigationBarPaddings = + WindowInsets.navigationBars.asPaddingValues().calculateBottomPadding() + 48.dp LazyColumn( modifier = Modifier - .fillMaxSize() + .fillMaxSize().padding(bottom = with(LocalDensity.current) { + val da = WindowInsets.navigationBars.getBottom(this).toDp() + 48.dp + da + }) ) { item { Box(