HarmongOS开发listContainer加载动画制作(实验性 意思并不稳定)

最近想给list添加动画,于是试着做了一下,我们先看效果
list动画
可以看到 item是从左进入屏幕的,但是并不稳定,我在这里说一下我的实现方式:

1.在Provider里面声明AnimatorProperty

private AnimatorProperty animatorProperty;

2.在getComponent方法里面设置属性动画

@Override
public Component getComponent(int position, Component convertComponent, ComponentContainer componentContainer) {
        final Component cpt;
        if (convertComponent == null) {
            cpt = LayoutScatter.getInstance(slice).parse(ResourceTable.Layout_item_text, null, false);
        } else {
            cpt = convertComponent;
        }
        animatorProperty = cpt.createAnimatorProperty();
        animatorProperty.moveFromX(-3000).moveToX(0).setDelay(100).setDuration(2000).setLoopedCount(0);
        SampleItem sampleItem = list.get(position);
        Text text = (Text) cpt.findComponentById(ResourceTable.Id_text);
        text.setText(sampleItem.getStr());
        return cpt;
}

3.同时在listContainer.addItemVisibilityChangedListener里面启动动画

listContainer.addItemVisibilityChangedListener(new ListContainer.ItemVisibilityChangedListener() {
            @Override
            public void onItemAdded(Component component, int i) {
                sampleItemProvider.getAnimatorProperty().start();
            }

            @Override
            public void onItemRemoved(Component component, int i) {
                sampleItemProvider.getAnimatorProperty().start();
            }
        });

这种方法效果并不好,只是提供一种思路,如果有更好的方案也欢迎大家评论交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码上夏雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值