近期一个项目对Tablayout进行了封装,并非继承Tablayout,测试提了一个bug,点击tablayout的item有个选中的效果。
因为并非直接自定义控件,无法通过tabBackground的属性修改
于是,查看源码 发现
public void setTabRippleColor(@Nullable ColorStateList color) {
if (this.tabRippleColorStateList != color) {
this.tabRippleColorStateList = color;
for(int i =0; i
View child =this.slidingTabIndicator.getChildAt(i);
if (childinstanceof TabLayout.TabView) {
((TabLayout.TabView)child).updateBackgroundDrawable(this.getContext());
}
}
}
}
通过mTabLayout.setTabRippleColor(ColorStateList.valueOf(getContext().getResources().getColor(R.color.transparent_color)));直接达到预期效果
问题解决,希望可以帮到您