そのため、ビューのボタンクリック領域をアンドロイドがクリッピングすることに問題があります。現時点では非常に単純なビューがあり、アニメーションの前に、幅と高さの両方で fill_parent になるように指示しているにもかかわらず、ビューの幅はそれに含まれるボタンのサイズに制限されています。
setClipChildren(false) で正しく動作するアニメーションの描画がありますが、これでもボタンをクリックできません。また、実際のボタンのビューを正しく移動しています。これは、ボタンの 1 つ (このアニメーションではすべて独立して動いている 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>
更新: アニメーションが幅 100 dp のセミクリクル パターンであり、ボタンが等間隔に配置され、ビューが正しく移動したと仮定してください。うまくいけば、これでいくつかの問題が解決し、解決策を見つけるのに役立ちます。
もう一度更新: OK、今度は誰かが私が何が間違っているのかを理解するのを手伝ってくれるはずです。背景を編集して、ボタンを含む RelativeLayout のオンが半透明 (下の画像の灰色) になるようにしました。外側の 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>
これは、何かが間違っていることを十分に明確にするはずの色を追加したスクリーンショットですが、まったく見えません。