Android TabLayout选项卡Tab布局伸缩动画

需求:当ScrollView上滑时,动画收缩隐藏Tab;当ScrollView下拉时,动画扩展显示Tab

方案:ValueAnimator属性动画改变TabLayout的高度

private ValueAnimator mGoodsTabIndentAnimator;
private ValueAnimator mGoodsTabExpandAnimator;
private int mGoodsTabLayoutHeight;

public void startGoodsTabIndentAnimation() {
    if (mGoodsTabIndentAnimator == null) {
        mGoodsTabLayoutHeight = mGoodsTabLayout.getHeight();
        NLog.i(TAG, "mGoodsTabLayout Height: " + mGoodsTabLayoutHeight);
        mGoodsTabIndentAnimator = ValueAnimator.ofInt(mGoodsTabLayout.getHeight(), 0);
        mGoodsTabIndentAnimator.setDuration(200);
        mGoodsTabIndentAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator valueAnimator) {
                Integer value = (Integer) valueAnimator.getAnimatedValue();
                ViewGroup.LayoutParams params = mGoodsTabLayout.getLayoutParams();
                params.height = value;
                mGoodsTabLayout.setLayoutParams(params);
            }
        });
    }
    mGoodsTabIndentAnimator.start();
}

public void startGoodsTabExpandAnimation() {
    if (mGoodsTabExpandAnimator == null) {
        mGoodsTabExpandAnimator = ValueAnimator.ofInt(0, mGoodsTabLayoutHeight);
        mGoodsTabExpandAnimator.setDuration(200);
        mGoodsTabExpandAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator valueAnimator) {
                Integer value = (Integer) valueAnimator.getAnimatedValue();
                ViewGroup.LayoutParams params = mGoodsTabLayout.getLayoutParams();
                params.height = value;
                mGoodsTabLayout.setLayoutParams(params);
            }
        });
    }
    mGoodsTabExpandAnimator.start();
}
上一篇 Android RadioGroup流式布局及动态添加RadioButton
下一篇 Androi PtrFrameLayout实现下拉刷新
目录
文章列表
1 Swift - 类和结构体的区别
Swift - 类和结构体的区别
2
Spring Cloud使用Nacos作为服务配置中心
Spring Cloud使用Nacos作为服务配置中心
3
Kubernetes 之 Cronjob
Kubernetes 之 Cronjob
4
uni-app Markdown相关插件
uni-app Markdown相关插件
5
Android快速开发
Android快速开发
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。