【问题标题】:Customise tab layout自定义选项卡布局
【发布时间】:2016-10-12 09:30:20
【问题描述】:

选项卡布局用于在 android 中创建滑动视图,但我想知道如何自定义它。我想显示一个盒装指示器而不是普通的底部指示器,并将默认值放在中间,只允许背景更改。像这样的

我看过一些教程和 github 项目,它们允许我自定义按钮,但不能自定义指示器本身。

android 是否允许本机执行此操作,或者是否有任何 github 存储库可以帮助我?

【问题讨论】:

  • 检查thisstackoverflow 答案
  • @ArsenSench 我已经看过了。它允许我自定义底部的指示器栏(例如将其更改为圆形和其他东西),但如果我将其更改为框,底部的指示器将采用框的形式,但我希望将整个文本包含在内在盒子里。我认为那是做不到的。
  • 理论上你可以将标签名设为空,并使用正方形内的布局编号作为指标布局
  • @ArsenSench 我听不懂你在说什么......

标签: android user-interface android-viewpager android-tablayout


【解决方案1】:

这就是我根据自己的风格自定义标签的方式。我迭代每个标签并产生任何效果,例如:选中时缩放或选取框效果。你可以看看这个Custom TabLayout

ViewGroup vg = (ViewGroup) tabs.getChildAt(0);
    int tabsCount = vg.getChildCount();
    for (int j = 0; j < tabsCount; j++) {
        View view = vg.getChildAt(j);
        //change drawable for each tabs
        view.setBackgroundResource(R.drawable.backgroundtabs);

        //if you want to diff drawable for each tabs for example tabs is 4
        //if j == 0    view.setBackgroundResource(R.drawable.backgroundtabs1);  
        //if j == 1    view.setBackgroundResource(R.drawable.backgroundtabs2);
        //if j == 2    view.setBackgroundResource(R.drawable.backgroundtabs3);
        //if j == 3    view.setBackgroundResource(R.drawable.backgroundtabs4);

        ViewGroup vgTab = (ViewGroup) view;
        int tabChildsCount = vgTab.getChildCount();
        for (int i = 0; i < tabChildsCount; i++) {
            View tabViewChild = vgTab.getChildAt(i);

            // Get TextView Element
            if (tabViewChild instanceof TextView) {
              // change font
              ((TextView) tabViewChild).setTypeface(tf);
              // change color
              ((TextView) tabViewChild).setTextColor(getResources().getColor(R.color.white));
              // change size
              ((TextView) tabViewChild).setTextSize(18);
              // change padding
              tabViewChild.setPadding(0, 0, 0, 0);
              //..... etc...
            }
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    • 2015-10-31
    • 2013-09-28
    • 2018-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多