新しいフラグメントが現れたときにフラグメントを部分的に隠したい。フラグメントが部分的にオフスクリーンになるようにアニメートする
Fragment Animation like Gmail Honeycomb App
に参照されるように、私は3つのフラグメントで始まり、GitHubの上ScienceGuyのコードの上に構築しています。最も左のものは6の重さ、中央のものは4の重さ、最も右側のものは4の重さです。weightSumを10に設定すると、左と中央のフラグメントが表示され、最も右のものがオフスクリーンになります。これは私が欲しいものです。
中間のフラグメントでアイテムを選択すると、左のフラグメントの3分の2が画面の左側から移動するように、左のフラグメントをトランジションします。重みのために、私は効果的に2,4,4を持っていました。この時点で、右の断片が画面上に完全に移動しました。
ScienceGuyのコードを使用すると、左のフラグメントがスクロールオフしても左のフラグメントが完全に消滅したときに正しいフラグメントを表示できます。私は次のコードを使用して試してみました
:
final float middleFragmentWidth = getMiddleFragment().getView().getWidth();
ObjectAnimator animIn = ObjectAnimator.ofFloat(null, "x",
-middleFragmentWidth/2, 0).setDuration(
trans.getDuration(LayoutTransition.APPEARING));
trans.setAnimator(LayoutTransition.APPEARING, animIn);
ObjectAnimator animOut = ObjectAnimator.ofFloat(null, "x", -middleFragmentWidth,
-middleFragmentWidth/2).setDuration(
trans.getDuration(LayoutTransition.CHANGE_DISAPPEARING));
trans.setAnimator(LayoutTransition.DISAPPEARING, animOut);
を私はAndroidが1がそれを「隠す」ときの断片が完全に隠されていることを期待していることを疑います。フラグメントをアニメーション化して、実際に隠されていないが部分的にオフスクリーンになる方法はありますか?
また、3つのフラグメントをHorizontalScrollViewに配置し、それをアニメーション化することもできます。しかし、中と右端のフラグメントにはリストビューが含まれているため、HorizontalScrollView内のリストビューを使用することは避けてください。according to the docs。
こんにちは、私は同じ問題に直面しています。これを解決してもらえますか? – Dhaval
LinearLayoutに基づくカスタムビューの作成が終了しました。私は例を挙げて質問に答えます。 –