1 问题
1)由于TabLayout设置了可滑动Tab参数
app:tabMode="scrollable"
导致每个Tab之间的间距很大,但是UI设计图里面的字体之间的间距很小,我们改怎么解决?
2)修改TabLayout指示线的长度(非反射)
3)修改选中的字体大小并且加粗
2 解决办法
问题1解决办法:
对TabLayout进行自定义,然后反射下面字段进行修改
scrollableTabMinWidth
import android.content.Context;
import android.util.AttributeSet;
import com.appsinnova.android.keepdrop.R;
import com.google.android.material.tabs.TabLayout;
import java.lang.reflect.Field;
public class MyTabLayout extends TabLayout {
// 一屏显示多少个tab
private static final int TabViewNumber = 8;
// support 低版本可能不一样
private static final String SCROLLABLE_TAB_MIN_WIDTH = "scrollableTabMinWidth";
public MyTabLayout(Context context) {
super(context);
initTabMinWidth();
}
public MyTabLayout(Context context, AttributeSet attrs) {
super(context, attrs);
initTabMinWidth();
}
public MyTabLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
initTabMinWidth();
}
private void initTabMinWidth() {
// int screenWidth = getResources().getDisplayMetrics().widthPixels;
// int tabMinWidth = screenWidth / TabViewNumber;
// scrollable模式时,tab的最小宽度
int tabMinWidth = (int) getResources().getDimension(R.dimen.value_25_dp);
Field field;
try {