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;
}
}