内部に複数のビューを含むカスタム フレームレイアウトを作成しました。レイアウトをクリックすると、レイアウト内でいくつかのアニメーションが実行されます。以下のように、XML でレイアウトの 2 つのインスタンスを作成しました。
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginTop="19dp"
android:orientation="vertical" >
<com.example.MyProj
android:id="@+id/frame1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="19dp"
android:layout_marginRight="28dp"
android:clickable="true" >
</com.example.MyProj>
<com.example.MyProj
android:id="@+id/frame2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:clickable="true" >
</com.example.MyProj>
</LinearLayout>
ここでの奇妙な動作は、メイン クラスでこれらのレイアウトを定義した後、最初のレイアウトをクリックすると、2 番目のレイアウトでアニメーションが発生することです。つまり、frame1 をクリックすると、フレーム 2 がアニメーション化されます。2 番目のレイアウトは、クリックすると正常に応答します。そのため、最新に定義されているレイアウトがアニメーション化されています。最初に定義されたレイアウトがアニメーション化されていません。
これは、メイン クラスでレイアウトを定義した方法です。
final MyProj fl = (MyProj) findViewById(R.id.frame1);
final MyProj fl1 = (MyProj) findViewById(R.id.frame2);
fl.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
fl.reset();
fl.animation();
}
});
fl1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
fl.reset();
fl1.animation();
}
});
これらのレイアウトがこのように動作する理由を誰か説明してもらえますか? 前もって感謝します。