ダイアログ テーマ ( github のソース コード) でアクティビティを開始するときに共有要素遷移を使用する非常に単純なアプリをまとめました。
次の結果が得られました。
ご覧のとおり、トランジション/アニメーションには 2 つの問題があります。
- アニメーションはダイアログ アクティビティの領域でのみ表示されるため、クリップして見苦しくなります。
- アクティビティの外側をタップして戻ると、トランジション/アニメーションがありません。
これらの問題を解決するにはどうすればよいですか? どんな助けでも大歓迎です。
編集: Quanturiumの回答の後、私はそれを機能させるために次のことを行いました:
ダイアログ テーマの代わりに次のテーマを使用します。
<style name="AppTheme.Transparent" parent="AppTheme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:backgroundDimEnabled">true</item>
</style>
ダイアログの外観、および丸みを帯びた角と影の背景として CardView を使用します。
finishAfterTransition() を呼び出します。ユーザーが CardView の外をタップしたとき。
現在、この (コード) のように見えます。CardView は、ダイアログによりよく一致するように調整する必要がありますが、少なくとも機能しています。