Android中父LinearLayout设置padding后能否移除特定子View的padding
解决方案
- 方案1:给需要突破父padding的子视图设置负margin(最推荐,无需修改现有父布局和其他子视图属性)
父布局的padding会挤压所有子视图的可用绘制区域,给需要取消缩进的子视图设置同等数值的负向margin,即可抵消父布局padding带来的影响。你当前父布局设置的左右padding为16dp,直接给分割线添加负的左右margin即可,修改后的分割线代码示例:
<View android:id="@+id/separator" android:layout_width="match_parent" android:layout_height="2dp" android:layout_marginTop="10dp" android:layout_marginStart="-16dp" android:layout_marginEnd="-16dp" android:background="#cccccc" android:visibility="gone" app:layout_constraintTop_toBottomOf="@id/header" />
如果需要RecyclerView也取消左右padding,给RecyclerView也加上同样的负start/end margin即可。
- 方案2:调整父布局的padding设置逻辑
如果后续有多个子视图需要突破padding,可以把父布局的全局padding移除,给需要保留padding的子视图统一添加16dp的左右margin,这种方案适合不需要padding的子视图占比较高的场景。
实际运行效果

预期输出效果

内容的提问来源于stack exchange,提问作者Compose Learner
相关产品推荐
相关产品推荐

