TabLayout设置下划线宽度,不使用反射

public static void setTabLayoutItemWidth(final TabLayout tableLayout, final int padding){
        tableLayout.post(new Runnable() {
            @Override
            public void run() {
                LinearLayout SlidingStrip= (LinearLayout) tableLayout.getChildAt(0);
                for (int i = 0; i < SlidingStrip.getChildCount(); i++) {
                    LinearLayout tabView= (LinearLayout) SlidingStrip.getChildAt(i);
                    tabView.setPadding(0,0,0,0);
                    int margin =ViewUtil.dip2px(padding);
                    ((LinearLayout.LayoutParams)tabView.getLayoutParams()).leftMargin=margin;
                    ((LinearLayout.LayoutParams)tabView.getLayoutParams()).rightMargin=margin;
                }
            }
        });
    }

通过查找child节点找到TabView,对TabView进行边距设置即可

你可能感兴趣的:(Android)