美文网首页
tablayout自定义长度 与上面的文字相同

tablayout自定义长度 与上面的文字相同

作者: sakura_L | 来源:发表于2016-12-12 10:44 被阅读1196次

    1新建各fragement 添加到list

    2新建适配器,在适配器的 @Override

    public CharSequence getPageTitle(int position) {

    return mName[position];

    } 方法给每个tab设置名称,mName为传进来的tab名称数组;

    3 该适配器继承FragmentPagerAdapter;

    4  总有一些时候你会遇到很操蛋的需求,本文主要为记录该需求 自定义tab 的长度跟文字一样而不是整个tab一样

    反射:

    Class tablayout = mDynamicTabLayout.getClass();

    Field tabStrip = null;

    try {

    tabStrip = tablayout.getDeclaredField("mTabStrip");

    tabStrip.setAccessible(true);

    LinearLayout ll_tab = (LinearLayout) tabStrip.get(mDynamicTabLayout);

    for (int i = 0; i < ll_tab.getChildCount(); i++) {

    View child = ll_tab.getChildAt(i);

    child.setPadding(0, 0, 0, 0);

    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1);

    // 以下两行是设置tab下滑条的宽度 起始位置和结束位置

    params.setMarginStart(DensityUtils.dip2px(getApplicationContext(), 60));

    params.setMarginEnd(DensityUtils.dip2px(getApplicationContext(), 45));

    child.setLayoutParams(params);

    child.invalidate(); // 这个方法是重画

    }

    } catch (NoSuchFieldException e) {

    e.printStackTrace();

    } catch (IllegalAccessException e) {

    e.printStackTrace();

    }

    相关文章

      网友评论

          本文标题:tablayout自定义长度 与上面的文字相同

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