2つのレイアウトファイルを作成しました.1つはポートレート用、もう1つはランドスケープ用です。ここで肖像画のための:風景のためにここフラグメント使用時のAndroidの向きの変更
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<fragment
android:id="@+id/fragment_newslist"
android:name="com.app.NewsListFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" >
</fragment>
</LinearLayout>
:
<fragment
android:id="@+id/fragment_newslist"
android:name="com.app.NewsListFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1" >
</fragment>
<fragment
android:id="@+id/fragment_viewnews"
android:name="com.app.ViewNewsFragment"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2" >
</fragment>
それからのonCreate()メソッド内のレイアウトをロードするアクティビティを作成しました。これまでのところ、これはうまく動作します。このアクティビティにはそれ以上のコードは含まれていません。
NewsListFragmentクラス内で、私はViewNewsFragmentが利用可能かどうかをチェックしています。そうでない場合、ユーザがListItemをタップすると、新しいアクティビティ(ViewNewsActiviy)が開始されます。使用可能な場合、データは既存のフラグメントに表示されます。したがって、2つのクラスがあります:1. ViewNewsActivityと2.ViewNewsFragment
私が実際に望むのは、向きの変更に関するレイアウトに変更することです。デバイスがポートレートからランドスケープに変わったとき、私は典型的なデュアルペインのレイアウトを持ちたいと思っています。それが風景から肖像画に変わった場合は、リストを単独で表示したいので、詳細は別の「ビュー」として表示する必要があります。
しかし、これを行う方法は?これまでは、風景や肖像画でアプリを起動するとうまく動作します。しかし、方向を変更すると、レイアウトは最初に設定されたままになります。
本当にありがとうございました:) ありがとうございます!
イェンス
はい、ただし、私は再読み込みするアクティビティは行いません。私はちょうど1つの断片を取り除きたい。 – user1177708
@ user1177708:あなたの活動を破壊して再作成することをAndroidに許可してください。古いアクティビティと新しいアクティビティの間にフラグメントを保持する場合は、 'FragmentTransaction'を使用してフラグメントを作成し、' setRetainInstance(true) 'を呼び出します。 – CommonsWare