簡體   English   中英

Android-使用片段時處理方向更改

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM