Android Studio 如何在Android Jetpack合成中不为支架设置@SuppressLint(“未使用的材料支架填充参数”)?

z4iuyo4d  于 2023-03-03  发布在  Android
关注(0)|答案(2)|浏览(190)

我有我的代码设置如下:

@SuppressLint("UnusedMaterialScaffoldPaddingParameter")
@Composable
    fun createScaffold() {
        Scaffold(
            topBar = { MyTopBar() },
            content = { MyContent() }
        )
    }

为了不添加@SuppressLint,我需要在这里做什么更改?

llycmphe

llycmphe1#

如果你想删除@SuppressLint("UnusedMaterialScaffoldPaddingParameter")警告,那么你必须在Scaffold中将PaddingValues添加到content。你可以这样写👇

Scaffold(
                    topBar = { MyTopBar() }
                ) { paddingValues ->
                    Column(modifier = Modifier.padding(paddingValues)) {
                        // write your content here
                    }
                }

基本上,PaddingValues是为内容提供填充(总是将paddingValues应用于父可组合函数)。

pkwftd7m

pkwftd7m2#

在下一个内容上使用paddingValues,它正好在那里计算要进入合成树的内容的正确屏幕显示。
如果你不使用它,你的屏幕将出现在scafold元素后面,比如顶栏或底栏。
未设置innerPadding的内容:

innerPadding集的内容:

下面是我如何使用它的一个例子:

{ innerPadding ->
            NavHost(
                navController,
                startDestination = startDestination.route,
                Modifier.padding(innerPadding)
            ) {
                currentScreen = navigationItems.find {
                    it.route == currentDestination?.route
                } ?: startDestination
                composable(Screen.NotesList.route) {
                    NotesListScreen(
                        modifier = Modifier
                            .fillMaxSize()
                            .padding(horizontal = MaterialTheme.spacing.medium)
                    )
                }
                composable(Screen.Bin.route) {

                }
            }
        }

相关问题