Jetpack Compose ClipToPadding

Posted

技术标签:

【中文标题】Jetpack Compose ClipToPadding【英文标题】: 【发布时间】:2021-05-31 18:50:44 【问题描述】:

我知道我可以像这样向小部件添加填充

LazyColumn(
   modifier = Modifier.padding(0.dp, 0.dp, 0.dp, 10.dp),
   content = 
        items(items.size)  index ->
            EmergencyContactComposeItem(emergencyContact = items[index])
        
    
)

但我如何产生与“clipToPadding=false”相同的结果

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_
    android:orientation="vertical"
    android:clipToPadding="false"
    android:paddingBottom="25dp">

视图/小部件在哪里不会剪裁填充,但仍会强制边界?

【问题讨论】:

【参考方案1】:

尝试如下内容填充:

LazyColumn(
    contentPadding = PaddingValues(bottom=10.dp),
)

    items(items.size)  index ->
        EmergencyContactComposeItem(emergencyContact = items[index])
    

【讨论】:

【参考方案2】:

LazyColumn 采用contentPadding 实现clipToPadding。您可以通过三种方式使用它。

第一个: 如果您想在各个方向添加相同的内容填充,请使用:

LazyColumn(
   contentPadding = PaddingValues(all = 16.dp)
) 
    items(items.size)  index ->
        EmergencyContactComposeItem(emergencyContact = items[index])
    

第二个: 如果您想在水平(开始和结束)或垂直(顶部和底部)添加相同的内容填充,请使用:

LazyColumn(
   contentPadding = PaddingValues(horizontal = 16.dp, vertical = 10.dp)
) 
    items(items.size)  index ->
        EmergencyContactComposeItem(emergencyContact = items[index])
    

第三个: 如果您想在各个方向添加不同的内容填充,或者如果您想在某些方向添加,请使用:

LazyColumn(
   contentPadding = PaddingValues(start = 5.dp, top = 10.dp, end = 8.dp, bottom = 6.dp)
) 
    items(items.size)  index ->
        EmergencyContactComposeItem(emergencyContact = items[index])
    

【讨论】:

以上是关于Jetpack Compose ClipToPadding的主要内容,如果未能解决你的问题,请参考以下文章

Android Jetpack Compose学习—— Jetpack compose基础布局

Android Jetpack Compose学习—— Jetpack compose基础布局

Android Jetpack Compose学习—— Jetpack compose入门

Android Jetpack Compose学习—— Jetpack compose入门

jetpack compose 接收返回参数

什么是Jetpack Compose?带你走进Jetpack Compose~