gpt4 book ai didi

android - 如何动画化 ListView 的扩展?

转载 作者:行者123 更新时间:2023-11-30 02:34:41 24 4
gpt4 key购买 nike

我正在寻求实现一个动画,它将在 android 中滑动打开或展开 ListView。目前,我正在使用比例动画(如下所示)

    Animation slideDown = new ScaleAnimation(1.0f, 1.0f, 0.0f, 1.0f);
slideDown.setDuration(1000);

但这行不通有两个原因:

1) 我希望第一个项目淡入,然后列表下拉。如果我做一个淡入淡出的动画,整个列表会显示出来,然后跳回顶部并缩小到完整大小

2) 我并不是真的想要缩放,我只想通过在底部设置动画来显示 ListView(如果这有意义的话)。

有没有一种方法可以让我只在底部边距或类似的东西上做一个 TranslateAnimation?我查看了可绘制的 Clip 资源,但这似乎不符合我的需求(我不确定如何将它应用到 ListView)。我使用的是普通 ListView,而不是 ExpandableListView,因为我只有一组项目。

最佳答案

所以我开始寻找不同的东西,结果证明动画高度是我的解决方案。本质上,我从列表中的一个虚拟对象开始(这样它至少有 1 行),然后我从该行的高度到整个列表的高度对其进行动画处理。下面是我现在调用的可运行代码。

private Runnable slideDownList1 = new Runnable() {
@Override
public void run() {

final ListView detail = (ListView)getView().findViewById(R.id.detail_menu_1);
ValueAnimator va = ValueAnimator.ofInt(detail.getHeight(), detail.getHeight()*mItem.containedObjects.size());
va.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator animation) {
Integer value = (Integer) animation.getAnimatedValue();
detail.getLayoutParams().height = value.intValue();
detail.requestLayout();
}
});
va.setDuration(1000);
va.start();
}
};

XML 只是一个基本的 ListView,其 id 为 detail_menu_1。

关于android - 如何动画化 ListView 的扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26762526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com