嘿我在右侧导航菜单中有一组textView我想要当菜单从右到左打开动画textview
时为了我有两个动画,第一个是动画设置包含翻译动画和alpha动画
首先在第一个动画之后我遇到问题,textview
在动画开始之前出现在它的位置,我通过将FillBefore=false
添加到动画集中的动画并将textview
可见性设置为动画开始前不可见
这很好。
然后我想在第一个动画集完成后添加另一个动画,当我添加这个动画时,问题又回来了,我无法解决,我删除它再次运行的第二个动画
这是我的动画集
<set xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:duration="500"
android:fillEnabled="false"
android:fillBefore="false"
android:fillAfter="true"
android:fromXDelta="150%"
android:toXDelta="0" />
<alpha
android:duration="500"
android:fillEnabled="true"
android:fillBefore="false"
android:fillAfter="true"
android:fromAlpha="0.0"
android:toAlpha="1.0" />
</set>
并且动画集的动画侦听器是
main_set = (AnimationSet) AnimationUtils.loadAnimation(getActivity(), R.anim.main_menu);
main_set.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
// main_dashboard_txt.setVisibility(View.VISIBLE);
}
@Override
public void onAnimationEnd(Animation animation) {
main_dashboard_txt.setVisibility(View.INVISIBLE);
main_dashboard_txt.startAnimation(allanim);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
并且所有动画动画都是
final TranslateAnimation allanim = new TranslateAnimation(0, pxFromDp(getActivity(), 21), 0, 0);
allanim.setDuration(100);
allanim.setFillAfter(true);
allanim.setFillBefore(false);
allanim.setFillEnabled(true);
allanim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
// main_dashboard_txt.setVisibility(View.INVISIBLE);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
我已经改变了之前填充的值并且多次填充但是它们似乎对第二个动画不起作用
另外:我第一次打开活动时效果很好但是当我关闭抽屉然后重新打开它时问题就出现了 感谢
答案 0 :(得分:1)
将视图隐藏在另一个Thread或Runnable中,以便在动画持续时间内不可见
答案 1 :(得分:0)
我通过设置Fillafter = false
和FillBefore=true
以及onAnimationEnd修复了我的问题,我将视图设置为可见再次
问题是如果Fill after equal,则即使我将其可见性设置为不可见