ギャラクシータブに2つの相対的なレイアウトを含むフルスクリーンビューフリッパーがあり、それぞれが5〜10の画像ビューを表示しています。
ビューフリッパービューの1つをスライドさせて、もう1つをスライドさせようとすると、問題が発生します。「アニメーション」は何もせず、ただ切り替わるだけです。
ビューフリッパーの子のそれぞれで1つを除くすべての画像ビューを削除すると、アニメーションは正常になります。
どういうわけか、アニメーションに画像の混合バージョンを使用するように強制できますか、それとも相対的なレイアウトコンテナがパフォーマンスの問題を引き起こしていますか?
フリッパーアニメーションが発生した時点では何も起きていないはずなので、問題を理解できません。
ありがとう
編集:問題のあるコードのいくつか:おそらくこれは、パフォーマンスの問題を引き起こしている領域を示している可能性がありますか?
onClickには、ビューを逆方向に切り替えたり、順方向に切り替えたりするために使用される2つのメソッド呼び出しがあります。ビューは、フリッパーに追加されて切り替えられる直前に「生成」されます。
だから、戻るボタンをクリックすると(例えば)私は(とりわけ)....
nextView = new RelativeLayout(this);
makeAView(selectedViewObjects, viewHolder2);
switchViewNow(-1);
currentView = nextView;
...
private void makeAView(ViewObjects vObjects, RelativeLayout nextView)
{
for(Object obj : vObjects.viewObjects)
{
if(obj instanceof Image)
{
addImageView(nextView, obj);
{
else
{
if(obj instanceof Anim)
{
addAnimView(nextView, obj);
}
}
ここで、Imageは静止画像を表示するためのカスタムビュー実装であり、AnimはAnimationDrawable(マルチフレーム画像サイクル)を表示するためのカスタムビュー実装です。
次に、切り替え方法があります。
private void switchViewNow(int direction)
{
if(direction == -1)
{
viewFrame.setInAnimation(AnimClass.inFromLeftAnimation(null));
viewFrame.setOutAnimation(AnimClass.outToRightAnimation(null));
viewFrame.showNext();
}
else
if(direction == 1)
{
viewFrame.setInAnimation(AnimClass.inFromRightAnimation(null));
viewFrame.setOutAnimation(AnimClass.outToLeftAnimation(null));
viewFrame.showNext();
}
}