如果添加动画,则视图鳍状肢未移除未显示的子项

时间:2013-04-12 10:42:28

标签: android animation view viewflipper transitions

编辑: 总结如果我在视图转换上有动画问题出现了,但是一旦从视图中移除动画,视图翻转器中未显示的子视图就会显示出来。

我创建了一个视图鳍状肢它运行得很好我也设置了一些动画,但是例如出现了一个错误。first scree second screen bug at third screen。就像在下面的屏幕上可以看到我有一个列表视图,如果我点击随机行视图被翻译。代码:((ViewFlipper)findViewById(R.id.in_app_vf)).setDisplayedChild(1);之后我单击后退按钮,第一个视图显示代码:((ViewFlipper)findViewById(R.id.in_app_vf)).setDisplayedChild(0);但问题是,当我点击editText所在的同一空间时,它会调用键盘。因此,列表视图在editText字段所在的位置不可单击。我找不到问题所在。

我使用的动画:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/decelerate_interpolator"
    android:fillAfter="true">
    <translate
        android:fromXDelta="0"
        android:toXDelta="-100%p"
        android:duration="700"/>

    <alpha 
        android:fromAlpha="1.0" 
        android:toAlpha="0.0" 
        android:duration="900" />
</set>

我尝试删除未使用的视图的代码,但它无效:

private void setAllTheOtherViewGone(){
        for(int i = 0; i <= ((ViewFlipper)findViewById(R.id.in_app_vf)).getChildCount()-1;i++)
            if(i != ((ViewFlipper)findViewById(R.id.in_app_vf)).getDisplayedChild()){
                ((ViewFlipper)findViewById(R.id.in_app_vf)).getChildAt(i).setVisibility(View.GONE);
                ((ViewFlipper)findViewById(R.id.in_app_vf)).getChildAt(i).setVisibility(View.INVISIBLE);
            }
    }

1 个答案:

答案 0 :(得分:0)

设置edittext的属性setFocusable(false)和setFocusableInTouchmode(false)可能有效。