gpt4 book ai didi

android - 单击 View 时,动画回退

转载 作者:行者123 更新时间:2023-11-29 02:00:22 24 4
gpt4 key购买 nike

(本主题与 .setfillafter(true) 无关)。

我在 android 的动画方面遇到了一些麻烦,我希望有人能帮助我解决这个问题。

我创建了一个线性布局和一个 ListView 。

listView 放置在相对布局中,因为我必须在相同的相对布局中设置其他 linearLayout 的 translationY,但我将其他 linearlayout 排除在问题之外。

当有人在线性布局上单击或点击(这将充当按钮)时, ListView 将使用以下几行动画向下移动一点:

animation_Fold = new TranslateAnimation(0, 0, 0, 150);
createNewAnimationListener(); //to monitor when the animation ends and starts.

animation_Fold.setDuration(300);
animation_Fold.setFillAfter(true);
listview_Contacts.startAnimation(animation_Fold);

如您所见,我创建了动画,它会向下移动 150(像素?)。

现在有一些代码可以将 ListView 动画化回其原始位置,但我认为这与这个问题无关。 (实际上是一样的,但是 fromYDelta 和 toYDelta 将被颠倒。)

当我点击 ListView (不管我点击哪里)在它被动画化后,它会回到原来的位置。但是我使用了 .setFillAfter(true),所以为什么会发生这种情况?因为我只希望 ListView 保持其新的给定位置。 (动画的位置)

我希望有人能帮助我完成我的动画,因为我卡在了这个。

最佳答案

好吧,我觉得有点奇怪,因为你们都认为我在自言自语,我想回答自己的问题。但不,幸运的是情况并非如此。

言归正传

我解决了自己的问题,但我认为这不是解决问题的方式。正如我在对 Amokrane Chentir 的评论中提到的,我发现当您禁用 ListView 时,您不必设置物理位置。这意味着当我在动画完成时单击 ListView 并且禁用 ListView 时, ListView 不响应并将忽略每个用户输入(和听众)。但是我可以用禁用的 ListView 做什么,什么也做不了。

但是当动画执行一次时, ListView 不需要与用户交互,所以禁用是一件好事,离我的解决方案又近了一步。我唯一需要解决的是在动画再次反转时在正确的时刻启用 ListView 。我通过禁用 ListView 并使用 onClickListener 使 ListView 下方的 RelativeLayout 可点击来做到这一点。onClickListener 在用户点击 listView 时监听,反向设置动画并再次启用 listview。 问题已解决。

这使得 ListView 对用户交互不可见。

if(isUnfolded)
{
listview_Contacts.setClickable(false);
listview_Contacts.setEnabled(false);
}
else
{
listview_Contacts.setClickable(true);
listview_Contacts.setEnabled(true);
}

当 relativeLayout 被点击时监听的 onClickListener。

rlvLayout.setOnClickListener(new OnClickListener() 
{
public void onClick(View v)
{
if(isUnfolded)
toggleFoldAnimation();
}
});

请随意回答或添加评论以获得更好的解决方案,否则我希望这个解决方案能帮助其他人。

关于android - 单击 View 时,动画回退,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12989087/

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