clipChilren设置为false仍然裁剪

我正在使用一个翻译animation移动一个蛋(ImageButton)在纸盒(ImageView)之外,但是它一直在剪裁,所以我查看了所有的stackoverflow来find一个解决scheme,但是在试图实现所有的解决scheme之后,它仍然裁剪。

任何人都可以解释为什么我的剪辑仍然存在,这里是XML:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:gravity="top" android:clipChildren="false" android:clipToPadding="false" android:layout_height="match_parent"> <ImageButton android:id="@+id/imageButton1" android:background="@drawable/transparentblackbackground" android:layout_below="@+id/relativeLayout1" android:layout_height="match_parent" android:layout_width="match_parent" android:clipChildren="false" android:clipToPadding="false" > </ImageButton> <!-- Total Carton for Animation --> <RelativeLayout android:orientation="vertical" android:layout_width="440dp" android:id="@+id/opencarton" android:layout_height="wrap_content" android:layout_centerInParent="true" android:clipChildren="false" android:clipToPadding="false" > <!-- The carton that holds the eggs --> <RelativeLayout android:orientation="vertical" android:layout_width="260dp" android:id="@+id/opencarton" android:layout_height="512dp" android:layout_centerInParent="true" android:clipChildren="false" android:clipToPadding="false"> <ImageButton android:id="@+id/blackbgnd" android:background="@drawable/clearbackground" android:layout_height="600dp" android:layout_width="400dp" android:clipChildren="false" android:clipToPadding="false" android:gravity="center"> </ImageButton> <!-- Top of Carton image --> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/topcomponent" android:src="@drawable/topofcarton" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:clipChildren="false" android:clipToPadding="false"> </ImageView> <!-- First Row Of eggs goes here in future --> <ImageButton android:clipChildren="false" android:clipToPadding="false" android:layout_height="158dp" android:id="@+id/egg1" android:background="@drawable/goldegg" android:layout_width="79dp" android:layout_alignTop="@id/topcomponent" android:layout_alignParentLeft="true" android:layout_marginLeft="10dp" android:layout_marginTop="3dp"></ImageButton> <ImageButton android:clipChildren="false" android:clipToPadding="false" android:layout_height="158dp" android:id="@+id/egg2" android:background="@drawable/goldegg" android:layout_width="79dp" android:layout_alignTop="@id/topcomponent" android:layout_alignParentLeft="true" android:layout_marginLeft="90dp" android:layout_marginTop="3dp"></ImageButton> <ImageButton android:clipChildren="false" android:clipToPadding="false" android:layout_height="158dp" android:id="@+id/egg3" android:background="@drawable/goldegg" android:layout_width="79dp" android:layout_alignTop="@id/topcomponent" android:layout_alignParentLeft="true" android:layout_marginLeft="170dp" android:layout_marginTop="3dp"></ImageButton> ................ </RelativeLayout> </RelativeLayout> </RelativeLayout> 

Solutions Collecting From Web of "clipChilren设置为false仍然裁剪"

好吧,我浪费了一个小时解决类似的问题。

我想你是animation的对象“手动”使用一些转换左右,并调用postInvalidateDelayed()或类似强制刷新。

问题是(对我来说),你需要在顶视图上调用它,否则canvas会自动剪裁到正在刷新的项目上。 所以在最上面的视图中调用invalidate()(或者类似的)应该会导致canvas不被剪裁得太多。

在你的情况下,我注意到你有两个“opencarton”id定义,你应该刷新顶部的一个或最高的RelativeLayout。