0

YouTubeアプリのように向きを変更してレイアウトを変更するにはどうすればよいですか? ランドスケープモードのときにアイテムレイアウトを変更するRecyclerViewのようですが、 どのようにこれを行うことができますか(フラグメント状態が保持されていると思いますので、データ、最新の位置などを保存して、レイアウトファイル) そうするベストプラクティスは何ですか?アンドロイドyoutubeアプリのような状態を保持しながら向きの変更のレイアウトを変更するには?

ポートレート: enter image description here

景観: enter image description here

+1

このhttps://inthecheesefactory.com/blog/fragment-state-saving-best-practices/enをチェックしてください。保持されたインスタンスを使用してビューを再作成する方法について説明します。 –

+0

@CedricFranckさん、ありがとうございました。でも、youtubeアプリと同じレイアウトを変更する方法はまだありますか? –

+0

2つのXMLを作成する必要があります。 1つはポートレート用、もう1つはランドスケープ用です。ポートレートから風景に方向を変更すると、保持されたインスタンス内にすべてのビューデータを保存してから、横長ビューでアクティビティを作成すると、これらのデータを取得してビューを水和させることができます。 –

答えて

2

あなたのマニフェストであなたの活動に

android:configChanges="orientation|screenSize" 

を追加することができます。したがって方向を変えてもあなたの活動は再読み込みされません。

+1

本当に、レイアウトファイルは変更されません 私はそれを動作させるために、既に保存されているインスタンスの状態でロードしたすべてのデータを入れます(このようにしてネットワークなどを呼び出す必要はありません) レイアウトフォルダの下にあるlayout-landで同じレイアウトリソースを配置しますが、異なるビュー構造を使用するので、自動的にランドスケープレイアウトがロードされます。 [ConstraintLayout](https://developer.android.com/training/constraint-layout/index.html)を使用して別の方法が行われる可能性があります。私はそれを調べようとしますが、結果が出たら、ここに投稿します –

関連する問題