动画后Android按钮无法点击

时间:2012-05-21 18:26:54

标签: android android-animation android-view android-button

因此我在浏览器视图中按下按钮单击区域时出现问题。我现在有一个非常简单的视图,在任何动画之前,视图的宽度被限制在其中包含的按钮的大小,即使我告诉我在宽度和高度都是fill_parent。

我使用setClipChildren(false)正确运行动画的绘图,但这仍然是停止点击按钮。我也正确地移动了实际按钮的视图,因为当其中一个按钮(我在这个动画中有5个都独立移动)直接移动到初始起始位置之上时,它可以被点击,我甚至可以正确接收。

这里是用于最外层视图的代码(我有2个模拟以后如何将这个视图添加到更大的项目中):

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <com.tests.FancyBottomTab
            android:id="@+id/fancyBottomTab1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="5dp"
            android:gravity="center_horizontal" 
            android:clipChildren="false">

        </com.tests.FancyBottomTab>

    </RelativeLayout>

然后这是FancyBottomTab用作布局xml:

的内容
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center_horizontal"
        android:orientation="vertical" >

        <Button
            android:id="@+id/button1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="5dp"
            android:background="@drawable/b1"
            android:paddingBottom="5dp" />

        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="5dp"
            android:background="@drawable/b2"
            android:paddingBottom="5dp"  />

       <Button
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="5dp"
            android:background="@drawable/b3"
            android:paddingBottom="5dp"  />

        <Button
            android:id="@+id/button4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="5dp"
            android:background="@drawable/b4"
            android:paddingBottom="5dp"  />

        <Button
            android:id="@+id/button5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="5dp"
            android:background="@drawable/b5"
            android:paddingBottom="5dp"  />

        <Button
            android:id="@+id/fancyRedButton"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:background="@drawable/fancy_red_button"
            android:visibility="visible" />

    </RelativeLayout>

更新:假设动画采用宽度为100dp的半圆形图案,并且按钮均匀分布并且视图正确移动。希望这可以解决一些问题并帮助找到解决方案。

再次更新:好的,这次有人应该能够帮我找出问题所在,我已经编辑了背景,以便包含按钮的RelativeLayout中的on是半透明的(下图中的灰色),然后外部RelativeLayout上的背景是白色的。现在,外部RelativeLayout必须保留一个相对布局以便稍后进行布局,但这里是用于它的XML:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@color/white"
        android:orientation="vertical" >


        <com.dobango.tests.FancyBottomTab
            android:id="@+id/fancyBottomTab1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="5dp"
            android:clipChildren="false"
            android:gravity="center_horizontal" >

        </com.dobango.tests.FancyBottomTab>

    </RelativeLayout>

这是一个添加了颜色的屏幕截图,应该可以清楚地表明出现问题,但我根本看不到它。

enter image description here

1 个答案:

答案 0 :(得分:0)

好的,所以我不知道为什么这是绝对必要的,以使视图正确显示,特别是因为我已经在XML文件中说了同样的事情,但这条线完全解决了问题:

   view.setLayoutParams(new LayoutParams( LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));

如果有人知道为什么我必须将此行放在我的自定义相对布局类中,请发表评论并解释。感谢。