peng8350/JPTabBar

荣耀8测试时第一个图标不显示

Closed this issue · 13 comments

我特意给图标加了个背景色,,放图
qq 20170719221022

就看图我也看不出是哪里出问题了,把整个代码发到我邮箱吧

我也遇到了图标不显示,主要是用动画FlipAnimater不显示,华为手机 7.0系统 其他动画能显示

写给作者: 之前解决了原因忘了回来说明, 你的插件是默认有动画效果的, 然后我不需要动画效果所以自定义了一个空的动画类, 而出现这种情况是因为定义了一个默认的动画效果. 刚刚翻了一下源码看到作者的代码已经改了, 不知道是不是已经修复了这个问题.

验证方法: 作者设定了一个默认的动画(DEFAULT_ANIMATE_TYPE)是SCALE_TYPE, 然后使用自定义一个空实现的动画类, 运行后会出现第一个图标是变大的效果, 其他图标正常大小. (我的图标不需要动画, 改了默认动画为ROTATE_TYPE/应该是这个, 不太记得了/, 所以才出现了图标不见了的情况, 最后是修改默认动画为自己的空实现动画才解决了.) 题外话: 建议默认动画改成没动画吧, 需要的人自己再添加

@L-kaxy 好吧,你是直接在XML定义动画效果为空还是在代码调用动画效果为空?

@peng8350 我是在代码使用一个自定义的Animater类, 这个类里的方法都空实现了

/** * 设置自定义动画 */ public void setCustomAnimate(@NonNull Animatable customAnimate) { this.mAnimater = customAnimate; }

然后调用的这个方法来设置的, 你搞了个@nonnull...所以我就没乱搞

@L-kaxy 其实XML可以自定义动画为None,就是没有动画了。另外,原因应该不是因为动画覆盖问题,很可能是华为mate8 7.0和p10 7.0这些手机都不支持setRotationX和setRotationY,所以才消失不见,虽然我没有华为设备也没试过,不过百度了一下,貌似确实有可能是这个问题

@peng8350 好的 谢谢

我的需求是需要一个翻转动画。。。。

@peng8350 这次我直接在xml中设置 app:TabAnimate="None", 但是我看你源码那个None的动画对应的还是那个默认的放大动画, 而不是无动画

@peng8350 新版本你是这样的

<enum name="Flip" value="0" />
<enum name="Rotate" value="1" />
<enum name="Scale" value="2" />
<enum name="Jump" value="3" />
<enum name="Scale2" value="4" />
<enum name="None" value="4" />

@peng8350 原本的setCustomAnimate你改成了setAnimation
设置无动画现在是需要这么设置
mTabbar.setAnimation(AnimationType.NONE);

结果还发现了原来新版本默认什么都不设置的情况下就是无动画了 哈哈

好吧,犯傻了,居然连这种错误都没发现:cold_sweat: