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

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

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

        }

    }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容