2017-07-30 1 views
-1

私はアクティビティと2つのフラグメントのレイアウトとクラスを持っています。
私がする必要があるのは、画面の向きを変更するときに、同じ内容を別々に再構成することだけです。オリエンテーションの変更を処理するコードをActivityまたはFragmentに挿入しますか?

私のコードはどこに置くべきですか?
どのクラスのアクティビティクラスまたはフラグメントクラスですか?

Fragmentクラスでコードを作成する場合は、両方のクラスにコードを配置するか、メインアクティビティを使用する場合、各レイアウトからオブジェクト(TextViewsなど)を見つけるにはどうすればよいですか?

+0

質問が不明です。 differentLayoutで2つの異なるフラグメントを持ち、1つだけのコードを作成したいですか? –

+0

私のコードはどこに置くべきですか? –

+0

私はデバイスの向きを変更するときに同じ詳細を表示する必要があります。私は1つの主要な活動と2つのフラグメントレイアウトとポートレートモードと横長モードのクラスがあります。同じ情報を表示する私のコードはどこに置くべきですか? –

答えて

0

ビューを配置するコードを置く...本当に簡単です。

res/layout-landは、まったく同じビューIDを保持する必要があります。

例えば、MainActivityはあなたが向きに応じて自動的に両方res/layout/activity_main.xmlres/layout-land/activity_main.xmlをロードします。あなたが任意のID値

全体 documentation page on thisあり

を変更しない場合

findViewByIdが適切に動作します。保持されているフラグメントを使用していることに注意してください。

またAndroid Studio: Creating landscape layouts

+0

ありがとうございます。出来た! –

-1

コメントに基づいてこれまでに理解してきたこと。

アクティビティがあり、2つのフラグメントがあります。これらの2つのフラグメントは異なるレイアウトを持ち、デバイスの向きに基づいてこれらのレイアウトを表示する必要があります。

さて、この問題

1)あなたはこの使用して断片

を達成したいのための2つのアプローチがあるフラグメントのための抽象クラスは、基底クラスに共通の機能を入れて作成し、別のフラグメントの異なる実装を提供子クラス

あなたはthis

2)セカンドapproaを参照することができますch

フラグメントを使用せずにはるかに簡単な方法で実現できます。 layout-landディレクトリを作成し、レイアウトXMLファイルのランドスケープ版をそのディレクトリに配置します。

はstackoverflowの

でこのthreadはそれが役に立てば幸い参照してください。

+0

私は2番目のことをしたし、それは働いた。ありがとうございますSir1 –

関連する問題