Android 动画后,按钮单击不起作用

Android 动画后,按钮单击不起作用,android,rotation,android-animation,Android,Rotation,Android Animation,我有两个按钮在一个线性布局中,在这个线性布局中我有两个按钮。当我设置LinearLayout动画时,工作正常,但当尝试单击LinearLayout内的按钮时,单击按钮无效 我已经搜索了很多,但无法解决这个问题 在下面的代码中设置动画LinearLayout an = new RotateAnimation(angleRightHead, getRotateAngleRightEdgehead (), Animation.RELATIVE_TO_SELF, 1, Animation.RELATIV

我有两个
按钮
在一个
线性布局
中,在这个
线性布局
中我有两个按钮。当我设置
LinearLayout
动画时,工作正常,但当尝试单击
LinearLayout
内的按钮时,单击
按钮
无效

我已经搜索了很多,但无法解决这个问题

在下面的代码中设置动画
LinearLayout

an = new RotateAnimation(angleRightHead, getRotateAngleRightEdgehead (), Animation.RELATIVE_TO_SELF, 1, Animation.RELATIVE_TO_SELF, 0.33f);
an.setRepeatMode(Animation.REVERSE);
an.setDuration(1000);              
an.setRepeatCount(0);                
an.setFillAfter(true);   
an.setFillEnabled(true);   
head_neck_ll.startAnimation(an); 
这是XML的代码

<LinearLayout  
    android:id="@+id/head_neck_idll"
    android:layout_width="wrap_content"
    android:layout_height="100dp"
    android:gravity="center"  
    android:orientation="horizontal" >    

    <Button
        android:id="@+id/head"
        android:layout_width="70dp"
        android:layout_height="20dp"
        android:background="@drawable/roundcorner"
        android:clickable="true"
        android:onClick="clickhander" />
     <!-- </RelativeLayout> -->

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="50dp"
        android:orientation="vertical" >

        <RelativeLayout
            android:layout_width="wrap_content"
            android:padding="3dp"
            android:layout_height="16dp" >

            <Button
                android:id="@+id/lumber"
                android:layout_width="49dp"
                android:layout_marginLeft="3dp"
                android:layout_height="wrap_content"
                android:layout_alignParentTop="true"
                android:layout_centerVertical="true"
                android:layout_marginBottom="-10dp"
                android:background="@drawable/roundcorner"
                android:clickable="true"
                android:onClick="clickhander" />

        </RelativeLayout>

        <Button
            android:id="@+id/backupper"
            android:layout_width="80dp"
            android:layout_height="20dp"
            android:background="@drawable/roundcorner"
            android:clickable="true"
            android:onClick="clickhander" />
    </LinearLayout>

</LinearLayout>
检查图像:

注:1和2的布局相同。我想用
布局动画


非常感谢您的帮助。

是的,这是正常行为。这是因为动画只是重新渲染
视图的像素,但它在显示器上的位置保持不变

如果要将
视图
重新定位到动画结束的位置,需要调用
View.layout()
方法并传递这4个参数,这些参数描述
视图
在其布局上的新位置


请记住,
View.layout()
获取相对于“视图的父对象”的参数。

能否显示
clickhander
的代码?请尝试在动画完成后使用动画侦听器清除动画。使用“clearAnimation()”。我认为问题在于动画会影响图像,而不是按钮。。。你能按一下按钮吗?它在哪里而不是应该在哪里。。我也在同一个问题上挣扎,但解决方案是什么?点击按钮,从原来的位置开始工作…@eduyayo向上投票亲爱的。。你是对的?请理解问题,然后上下表决。
public void clickhander(View v){
    if(v.getId() == R.id.head){
        textv = head;
        v1right = mapRight.get(head);
        v1right = mapLeft.get(head);

        head.setBackgroundResource(R.drawable.clickroundcorner);
        lumber.setBackgroundResource(R.drawable.roundcorner);
        backupper.setBackgroundResource(R.drawable.roundcorner);
        backlower.setBackgroundResource(R.drawable.roundcorner);    
        legside.setBackgroundResource(R.drawable.roundcorner);
        angle =0;
    } else if(v.getId() == R.id.backupper){
        textv = backupper;
        v1right = mapRight.get(backupper);
        v1right = mapLeft.get(backupper);

        backupper.setBackgroundResource(R.drawable.clickroundcorner);
        head.setBackgroundResource(R.drawable.roundcorner);   
        lumber.setBackgroundResource(R.drawable.roundcorner);
        backlower.setBackgroundResource(R.drawable.roundcorner);
        legside.setBackgroundResource(R.drawable.roundcorner);
        angle =0;
    }
}