设置tablayout光标宽度

来源:互联网 发布:淘宝达人淘在哪里看 编辑:程序博客网 时间:2024/05/21 08:02
 //设置tablayout光标宽度        mTabLayout.post(new Runnable() {            @Override            public void run() {                setIndicator(mTabLayout,60,60);            }        }); public void setIndicator(TabLayout tabs, int leftDip, int rightDip) {        Class<?> tabLayout = tabs.getClass();        Field tabStrip = null;        try {            tabStrip = tabLayout.getDeclaredField("mTabStrip");        } catch (NoSuchFieldException e) {            e.printStackTrace();        }        tabStrip.setAccessible(true);        LinearLayout llTab = null;        try {            llTab = (LinearLayout) tabStrip.get(tabs);        } catch (IllegalAccessException e) {            e.printStackTrace();        }        int left = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, leftDip, Resources.getSystem().getDisplayMetrics());        int right = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, rightDip, Resources.getSystem().getDisplayMetrics());        for (int i = 0; i < llTab.getChildCount(); i++) {            View child = llTab.getChildAt(i);            child.setPadding(0, 0, 0, 0);            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1);            params.leftMargin = left;            params.rightMargin = right;            child.setLayoutParams(params);            child.invalidate();        }    }