2013-02-21 94 views
1

在Android應用程序中,我有兩個用戶看到的屏幕,一個用於準備查詢,另一個用於顯示結果。這裏的正確界面是在一個屏幕上準備查詢,然後在第二個屏幕上查看結果。由於此應用程序針對的是手機用戶,因此無需一次顯示這兩個應用程序。兩個活動或兩個片段?

傳統的Android方式是使用兩個活動,一個QueryPreparationActivity和一個DisplayResultActivity,並在兩者之間切換。但是,我越來越多地聽到Android UI如何切換到片段。我可以將兩個屏幕實現爲兩個片段,並將其切換爲活動,但它是否值得麻煩?我將基本上覆制Android已有的活動管理代碼。

是否有理由在這裏使用兩個片段?

*我使用的術語screen,因爲它不一定是一個活動...

+0

謝謝大家。你們都說同樣的事情,並且你說服我花費額外的時間,完成額外的工作並用碎片實現UI。我無法接受你所有的答案,所以信用最少的人會得到複選標記... – zmbq 2013-02-21 19:22:08

+0

爲什麼當我首先回答時選擇了ebarrencheas答案? – 2013-02-21 19:24:30

+0

我只是想問我怎麼能改善我的答案,爲什麼他選擇了ebarrenchea。我們給出相同的觀點和原因。 – 2013-02-21 20:52:55

回答

3

引入了片段將封裝UI元素和相關行爲封裝到單個可重用模塊中。在碎片之前,您必須重新編寫與2個或更多活動共有的相同代碼,特別是如果您找不到將UI /控制代碼抽象爲超類的好方法。活動僅召回setContentView一次的侷限性使情況進一步複雜化。因此,在活動之間共享一些代碼並不是那麼好。

現在,回答你的問題,這一切都取決於你。如果您認爲更進一步,您可以使用QueryPreparation或DisplayResult ui作爲模塊(其背後的佈局和邏輯),然後進行片段實現。它可能是一個不同的佈局,用於手機上的橫向視圖,或者如果您決定支持像連線7這樣的小型平板電腦。如果您確定它永遠不會發生,那麼請堅持使用活動。就我個人而言,我在任何地方都會使用碎片,並且它們確實可以「實現未來」證明您的實施可以在路上重複使用。

4

就個人而言,我一直養成使用片段。

,但我可以給你使用的碎片的最好的理由是,當你開發你得到了很多的可重用性的手機和平板設備。

我知道你已經提到過,沒有必要一次顯示兩個屏幕。但稍後說,你要爲平板設備開發相同的「屏幕」,並意識到準備屏幕太荒蕪了,並且希望同時顯示queryprep和顯示結果,則必須編寫全新的第3活動。

如果您使用的片段,你會重用你的1個活性和2個片段,而這一活動應編碼足夠的智慧來確定屏幕的大小和顯示正確的佈局。

代碼可重用性&靈活性是這裏的流行詞。

如果您有任何問題,請留下評論,我會擴大我的答案。如果你喜歡我的回答,請註冊並接受。

+0

給出Details Fragment的一些最佳示例,我想用它來創建活動等配置文件。 – 2013-03-20 05:47:23

1

在短的片段進行了介紹,以適應平板電腦/大屏設備的出現,並允許開發人員創建將在廣泛的屏幕尺寸非常小變化的代碼運行的應用程序。

更多可以是read here at the Android Blog。該博客還詳細介紹了向碎片方向發展的一些細節技術細節。在Goolge IO 2012中還引入了DialogFragments,您應該考慮使用DialogFragments而不是Dialog。他們的另一篇博文here describes

你最好習慣使用Fragments和DialogFragments,因爲這是Android的發展方向。只有使用個人活動,如果你確實需要做一個快速和骯髒的應用程序來說測試目的。碎片,在我看來,確實需要更多的代碼工作來整合並最初讓你的頭腦圓滿,但這是值得的。