美文网首页
项目中TabLayout 关联了 ViewPager 下划线不见

项目中TabLayout 关联了 ViewPager 下划线不见

作者: 拉贝 | 来源:发表于2017-10-20 08:03 被阅读22次

这里先记录一下问题的解决方式,后续再进行分析整理

  tabLayout.getTabAt(1).select();

        setIndicator(tabLayout,10,10);

    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();

        }

    }

相关文章

网友评论

      本文标题:项目中TabLayout 关联了 ViewPager 下划线不见

      本文链接:https://www.haomeiwen.com/subject/ncsmuxtx.html