您如何在Android的TabLayout中制作动画?

您如何在Android的TabLayout中制作动画?,第1张

概述我已经用viewPager实现了四个选项卡的TabLayout.这些选项卡具有customView,因为每个选项卡都有两个textView(文本看不见的计数).因此,在更改选项卡时,我能够处理很多UI内容,但是,无法为看不见的textView设置动画.我的自定义XML对于textView及其父级RelativeLayout均具有android:an

我已经用vIEwPager实现了四个选项卡的TabLayout.
这些选项卡具有customVIEw,因为每个选项卡都有两个textVIEw(文本看不见的计数).
因此,在更改选项卡时,我能够处理很多UI内容,但是,无法为看不见的textVIEw设置动画.

我的@R_419_6942@XML对于textVIEw及其父级relativeLayout均具有androID:animateLayoutChanges =“ true”.

另外,我尝试在实际标签上设置此功能,尝试制作各种动画,但均无效.
ps-没有动画,我只是设置能见度(消失,可见).

private voID updateUnseenOnTab(int position, int unseen) {    VIEwGroup vg = (VIEwGroup) mTabLayout.getChildAt(0);    VIEwGroup vgTab = (VIEwGroup) vg.getChildAt(position);    VIEw vIEw = vgTab.getChildAt(0);    if (vIEw != null && vIEw.findVIEwByID(R.ID.tab_unseen) instanceof TextVIEw) {        final TextVIEw unseenText = (TextVIEw) vIEw.findVIEwByID(R.ID.tab_unseen);        if (unseen <= 0) {            unseenText.setText("0");            Animation fadeOut = new AlphaAnimation(0, 1);            fadeOut.setDuration(1000);            unseenText.setAnimation(fadeOut);        } else {            String currentText = unseenText.getText().toString();            try {                Animation fadeIn = new AlphaAnimation(0, 1);                fadeIn.setDuration(1000);                unseenText.setAnimation(fadeIn);                unseenText.setText("" + ((TextUtils.isEmpty(currentText) ? 0 : unseen) + Integer.valueOf(currentText)));            } catch (Exception e) {                e.printstacktrace();            }        }    }

解决方法:

我不知道您是否要为每个选项卡或每个选项卡中的子视图设置动画.这将以150ms的延迟使每个选项卡一个接一个地动画.如果要为一个选项卡中的每个孩子设置动画,只需将其置于另一个循环中即可.

            tabs = (TabLayout) findVIEwByID(R.ID.tabs);            VIEwGroup vg = (VIEwGroup) tabs.getChildAt(0);            int tabsCount = vg.getChildCount();            for (int i = 0; i < tabsCount; i++)            {                int delay = (i * 150) + 750; //this is starting delay                VIEwGroup vgTab = (VIEwGroup) vg.getChildAt(i);                vgTab.setScaleX(0f);                vgTab.setScaleY(0f);                vgTab.animate()                        .scaleX(1f)                        .scaleY(1f)                        .setStartDelay(delay)                        .setInterpolator(new FastOutSlowInInterpolator())                        .setDuration(450)                        .start();            }
总结

以上是内存溢出为你收集整理的您如何在Android的TabLayout中制作动画?全部内容,希望文章能够帮你解决您如何在Android的TabLayout中制作动画?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1079819.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存