更新底部导航栏的padding

为消息、动态和个人资料页面添加底部padding,以适应导航栏。
This commit is contained in:
2024-08-28 23:55:58 +08:00
parent 9c7c11f989
commit 98430f3282
3 changed files with 22 additions and 3 deletions

View File

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

View File

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

View File

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