Android ViewPager和TabLayout:如何在边距之间有线性(矩形)指示器
创始人
2024-08-19 05:00:16
0

要在Android ViewPager和TabLayout中实现具有线性(矩形)指示器的边距之间,您可以使用自定义的TabLayout.TabIndicatorColorStateList。以下是一个示例代码:

  1. 创建一个名为CustomTabLayout的类,继承自TabLayout。
public class CustomTabLayout extends TabLayout {

    private int indicatorStartMargin;
    private int indicatorEndMargin;

    public CustomTabLayout(Context context) {
        super(context);
    }

    public CustomTabLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CustomTabLayout(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    public void setIndicatorMargins(int startMargin, int endMargin) {
        this.indicatorStartMargin = startMargin;
        this.indicatorEndMargin = endMargin;
        invalidate();
    }

    @Override
    public void draw(Canvas canvas) {
        super.draw(canvas);

        View currentTabView = getTabAt(getSelectedTabPosition()).view;
        int tabWidth = currentTabView.getWidth();

        int indicatorStart = currentTabView.getLeft() + indicatorStartMargin;
        int indicatorEnd = currentTabView.getRight() - indicatorEndMargin;

        int indicatorTop = getHeight() - getSelectedTabIndicator().getIntrinsicHeight();
        int indicatorBottom = getHeight();

        getSelectedTabIndicator().setBounds(indicatorStart, indicatorTop, indicatorEnd, indicatorBottom);
        getSelectedTabIndicator().draw(canvas);
    }
}
  1. 在您的布局文件中,将TabLayout替换为CustomTabLayout

  1. 在您的活动或碎片中,通过调用setIndicatorMargins()来设置指示器的边距。
CustomTabLayout tabLayout = findViewById(R.id.tabLayout);
tabLayout.setIndicatorMargins(16, 16);

这样,您就可以在边距之间实现具有线性(矩形)指示器的Android ViewPager和TabLayout。您可以根据需要调整指示器的起始和结束边距。

相关内容

热门资讯

玩家攻略!xpoker(透视)... 1、玩家攻略!xpoker(透视)其实真的有挂(详细教程)(有挂技巧)-哔哩哔哩。2、xpoker透...
透明私人局(扑克之城那假)软件... 透明私人局(扑克之城那假)软件透明挂(辅助挂)竟然是真的有挂(有挂总结)-哔哩哔哩;揭秘教程安装方法...
记者发布!云扑克德州有挂(辅助... 1、记者发布!云扑克德州有挂(辅助挂)果真是真的有挂(详细教程)(有挂方法)-哔哩哔哩2、进入游戏-...
科普攻略!德扑之星好牌,德州之... 科普攻略!德扑之星好牌,德州之星app有外挂,原来真的有挂(有挂教学)-哔哩哔哩;原来确实真的有挂(...
一分钟了解!鱼扑克app ai... 一分钟了解!鱼扑克app ai(辅助挂)原来真的有挂(详细教程)(有挂教学)-哔哩哔哩1、很好的工具...
玩家必看教程!pokermas... 《玩家必看教程!pokermaster有挂(辅助挂)其实真的有挂(详细教程)(有挂方法)-哔哩哔哩》...
2分钟了解!nzt德州辅助,c... 2分钟了解!nzt德州辅助,cloudpoker外挂,竟然真的有挂(有挂方法)-哔哩哔哩;亲真的是有...
热门推荐(红龙扑克看底牌)辅助... 热门推荐(红龙扑克看底牌)辅助透视(透视)原来真的有挂(有挂方法)-哔哩哔哩;1.红龙扑克看底牌 a...
玩家科普!智星德州辅助(透视)... 《玩家科普!智星德州辅助(透视)其实真的有挂(详细教程)(有挂教学)-哔哩哔哩》 智星德州辅助软件透...
透视辅助!德扑网上设置(透视)... 1、透视辅助!德扑网上设置(透视)原来是真的有挂(详细教程)(有挂总结)-哔哩哔哩(UU poker...