
背景预实现一个切换tab实现选中与未选中的背景切换特别之处在于选中背景图和未选中背景图高度不相同切换之后需要在java代码中动态设置LayoutParams改变高度。预期效果当前问题点选中背景为.9图未选中背景为xml中通过shape实现。将当前ViewGroup设置为选中状态的固定高度选中效果正确但是未选中背景会与选中背景同高底部边框并未与选中背景平齐如图通过设置下边距实现设置padding与margin都无效具体原理简单来说就是我设置的是ViewGroup的背景padding针对于ViewGroup的子元素有效margin针对于ViewGroup的父元素有效所以均无法实现将ViewGroup的高度设置为wrap_content设置成自适应需要将未选中的shape设置高度但是这样存在一个问题就是选中状态是一个.9图片无法做到固定高度所以选中效果无效那么我们该怎么办呢如果通过xml配置的方式来实现呢答案就是 layer-list问题分析我们当前的难点就在于背景图的下边对齐问题那么我们自然地就想到无外乎就是设置高度调整边距来解决上边已经阐述过了我们通过常规的padding和margin是不行的设置高度也不行。我们要解决问题的根本就是能不能给未选中的背景图设置一个下边距让它无法撑满ViewGroup上边提到了我们未选中背景是一个shape那我们可以在shape的外边套上一层layer-list然后借助它的bottom属性设置边距就可以了问题解决核心代码如下?xml version1.0 encodingutf-8? layer-list xmlns:androidhttp://schemas.android.com/apk/res/android item android:bottom6dp shape android:shaperectangle stroke android:widthdimen/dp_1 android:color#ffdddddd / corners android:radius8dp / /shape /item /layer-list大功告成文末我总结了一些Android核心知识点以及一些最新的大厂面试题、知识脑图和视频资料解析。需要的小伙伴私信【学习】我免费分享给你以后的路也希望我们能一起走下去。谢谢大家一直以来的支持需要的自己领取直接点击文末小卡片可以领取哦Android学习PDF架构视频面试文档源码笔记部分资料一览330页PDF Android学习核心笔记内含8大板块Android学习的系统对应视频Android进阶的系统对应学习资料Android BAT大厂面试题有解析点击下方卡片免费领取