Android开发:Tab背景添加圆角无效问题求助
解决Tab背景圆角不生效的问题
你的代码核心问题是同一个<item>标签里同时写了android:drawable属性和嵌套的<shape>标签,系统会优先加载android:drawable指定的纯色背景,导致<shape>里的圆角设置完全失效。
修正后的Drawable代码
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 选中状态:用shape包裹背景色和圆角 --> <item android:state_selected="true"> <shape android:shape="rectangle"> <!-- 设置背景色 --> <solid android:color="@color/bleue_sky" /> <!-- 设置圆角 --> <corners android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" android:topLeftRadius="15dp" android:topRightRadius="15dp" /> </shape> </item> <!-- 未选中状态 --> <item> <shape android:shape="rectangle"> <solid android:color="@color/blackTransparent" /> <!-- 如果未选中状态也需要圆角,复制上面的corners标签即可 --> </shape> </item> </selector>
额外注意事项
- 如果设置后圆角还是不显示,检查你的TabLayout是否开启了裁剪:在布局文件的TabLayout标签里添加
android:clipToPadding="true"和android:clipChildren="true",确保超出圆角范围的背景被裁剪掉。 - 可以给Tab设置适当的padding,避免Tab内的文字或图标贴在圆角边缘,比如在TabLayout里添加
app:tabPaddingStart="16dp"、app:tabPaddingEnd="16dp"。
内容的提问来源于stack exchange,提问作者Patrick Renaud
相关产品推荐
相关产品推荐

