2014-02-13 72 views
2

只是一個免責聲明,我對Android非常陌生,並且正在通過教程慢慢學習。大多數教程在開始時都不會談論片段,但默認情況下,Android-studio會爲您設置一個片段。關於何時使用片段和活動的一些問題

我讀過一些過去的問題和開發博客相關的片段和活動,他們有助於給我一個關於使用片段的優點的想法。

對於何時在應用程序中使用新活動,我仍然有點困惑,在我看來,似乎所有事情都可以通過片段和單個活動完成。

比方說,一個應用程序有多個屏幕,你是否將它實現爲一個具有多個片段的活動,或者將多個活動與每個片段相關聯。

image

此圖片對我來說很有意義,並演示片段的權力,但爲什麼在手機示例需要兩個活動?

另一個附加問題,如果所有的事情都在一個片段中完成?

謝謝你,對不起,如果這些問題沒有意義。

+1

http://stackoverflow.com/questions/20306091/dilemma-when-to-use-fragments-vs-activities或http://stackoverflow.com/questions/18885311/use-活動或片段在Android應用程序 – Mdlc

回答

3

一個Activity應該是相關Fragments的集合的主機。例如,你可能有這樣的:

Base Activity extends FragmentActivity 

LoginActivity extends BaseActivity 
    -- LoginFragment 
    -- LoginErrorFragment 
    -- LoginSignUpFragment 

SettingsActivity extends BaseActivity 
    -- SettingsGeneralFragment 
    -- SettingsAdvancedFragment 

如果你嘗試所有的邏輯放入一個Activity,它會變得難以維護的非常快。另一個良好的做法是有一個基地Activity,其中所有Activities擴展;因爲如果您突然發現您想要爲所有活動提供某些功能,則可以將其添加到基類中。

+0

謝謝,這與從另一張海報(我一些如何錯過我的搜索)的鏈接,有助於澄清一些事情。 – Lynx

+0

對不起,只是澄清你所說的話,你是說它有一個「主要活動」取代了應用程序中的所有活動的良好做法?因此,在您給出的示例中,您將在LoginActivity和SettingsActivity上方具有「MainActivity」。 – Lynx

+1

正確。我們有一個'BaseActivity'類,所有其他活動都可以擴展。 – kcoppock

0

正如你所說。在簡單的應用程序中,您只能使用一個Activity並更換碎片。我在我的應用程序中完成了它,並且它非常完美。有時你只需要開始新的Activity如果你想遵循android設計和架構模式。

  1. 根據你對你貼,你可以 只用一個Activity和片段獲得相同的效果圖像的問題。
  2. 是的,一切前進都可以在片段中完成。
3

以上所說的一切都是絕對正確的。我只想給他們添加幾點。

  1. 當考慮片段請記住,它們是一種活動,其中類似的任何其它視圖可以被添加,修改和替換動態的一部分。例如,使用ActionBar和Navigation Drawers的片段變得更加方便和靈活。對於ViewPager等類似的東西也是如此。
  2. 片段還比傳統的Activity方法更適合更大的屏幕尺寸。想象一下用戶體驗,當執行每一個動作時,當所有動作和他們執行的事件位於同一屏幕上時,新屏幕將取代手機/平板電腦。

我還喜歡片段的另一件事是,我們不必在Manifest中聲明它們。 :)大多數情況下,我們會在編譯器提示之前忘記使用Activities來執行此操作。 :)(至少我)

相關問題