Android如何实现指定设计图的Tab样式,底部指示器圆角不生效求助
问题原因
你当前的实现逻辑是用负边距将描边的上、左、右部分挤出可见区域,仅保留底部描边。但矩形的圆角是四个角统一生效的,调大圆角后,左上角和右上角的描边圆角部分无法完全被负边距挤出,就会出现多余红色线条,同时底部描边的圆角也无法单独生效。
修复代码
直接将底部指示器定义为独立的圆角矩形,不需要用描边+负边距的实现逻辑,修改后的drawable代码如下:
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:gravity="bottom" android:height="3dp" android:left="6dp" android:right="6dp"> <shape android:shape="rectangle"> <solid android:color="#e41919"/> <corners android:topLeftRadius="6dp" android:topRightRadius="6dp"/> </shape> </item> </layer-list>
使用说明
- 代码中的高度、圆角半径、左右边距可根据你的设计需求自行调整,不会再出现顶部多余线条的问题
- 如果你需要指示器和Tab内容宽度匹配,不填充整个Tab宽度,可以在TabLayout的XML配置中添加
app:tabIndicatorFullWidth="false"属性
内容的提问来源于stack exchange,提问作者Surya Prakash Pandey
相关产品推荐
相关产品推荐

