[英]Android - handling orientation changes when using fragments
我制作了兩個布局文件-一個用於縱向,一個用於橫向。 這里是肖像:
<?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>
然后,我創建了一個Activity,用於在onCreate()方法中加載布局。 到目前為止,這當然很好。 該活動所包含的代碼不止於此。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_news);
}
在NewsListFragment類中,我正在檢查ViewNewsFragment是否可用。 如果不是,並且用戶點擊了ListItem,將啟動一個新的Activity(即ViewNewsActiviy)。 如果可用,數據將顯示在現有片段中。 因此有兩個類:1. ViewNewsActivity和2. ViewNewsFragment
但是我真正想要的是在方向更改時更改布局。 當設備從縱向切換為橫向時,我希望具有典型的雙窗格布局,如果從橫向切換為縱向,則我希望僅顯示列表,並且詳細信息應視為單獨的“視圖”。
但是該怎么做呢? 到現在,無論您橫向還是縱向啟動應用程序,它都可以正常工作。 但是,當您更改方向時,布局仍保持初始設置。
我非常感謝您的幫助:)! 非常感謝你!
詹斯
但是該怎么做呢? 到現在,無論您橫向還是縱向啟動應用程序,它都可以正常工作。 但是,當您更改方向時,布局仍保持初始設置。
Android將在方向改變時自動銷毀並重新創建您的活動,因此每次調用onCreate()
都會獲得正確的布局。
如果這對您而言沒有發生,那么您可以做一些事情來阻止它,例如,在清單中的<activity>
中添加android:configChanges
屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.