我想为 setVisibility 上的视图设置动画,但它仅第一次工作
Posted
技术标签:
【中文标题】我想为 setVisibility 上的视图设置动画,但它仅第一次工作【英文标题】:I want to animate view on setVisibility but it works only for the first time 【发布时间】:2017-05-19 22:31:54 【问题描述】:我已经添加了
android:animateLayoutChanges="true"
我的回收站视图和可见性在onClick
中处理如下,但它仅在第一次点击时有效。
rlOtherOptions.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(final View view)
if (rvModeCheck.getVisibility() == View.GONE)
rvModeCheck.setVisibility(View.VISIBLE);
else
rvModeCheck.setVisibility(View.GONE);
);
我该怎么办?
【问题讨论】:
你在找哪个动画?像 Alpha 一样,旋转,.. 你在看哪个动画 发布完整的活动代码 我想动画父布局下方缓慢扩展并出现recyclerView。在相对布局中添加了回收站视图。谢谢。 【参考方案1】:android:animateLayoutChanges="true"
请在您的 XML 的根布局中添加上述内容...
【讨论】:
【参考方案2】:尝试通过代码制作动画
rlOtherOptions.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(final View view)
if (rvModeCheck.getVisibility() == View.GONE)
rvModeCheck.setVisibility(View.VISIBLE);
rvModeCheck.setAlpha(0);
rvModeCheck.animate().alpha(1).setDuration(300).setListener(null);
else
rvModeCheck.animate().alpha(0).setDuration(300).setListener(new Animator.AnimatorListener()
@Override
public void onAnimationStart(Animator animation)
@Override
public void onAnimationEnd(Animator animation)
rvModeCheck.setVisibility(View.GONE);
@Override
public void onAnimationCancel(Animator animation)
@Override
public void onAnimationRepeat(Animator animation)
);
);
【讨论】:
【参考方案3】:如果尚未将此代码放在 onCreateView 方法中,请尝试。
可能需要在您的问题中添加更多信息/代码以获得更好的帮助。
【讨论】:
以上是关于我想为 setVisibility 上的视图设置动画,但它仅第一次工作的主要内容,如果未能解决你的问题,请参考以下文章
我想在setVisibility上制作动画视图,但它仅适用于第一次
setVisibility(View.Gone) 工作,但视图仍然拥有空间
RecyclerView ambiguos setVisibility函数,点击一个视图影响多个视图
View.setVisibility 中的 java.util.ConcurrentModificationException