For English user, please check this video, this article basic just translate it to Chinese for Chinese and Mandarin user.

# Issue with Multiple Activity

其他中文連結

activity的動畫在不同版本的android以及使用的主題都會有所不同,而property animate更不能向前支援

activity之間的動畫切換,也會切換到app bar, bottom navigation bar等等,它們作為全局導航項目,切換得過程會讓使用者困惑

在activity之間要分享數據,數據會經由applcation scope傳送,

![](https://i.imgur.com/KAptmIc.png)

但在single activity的設計中,數據僅會在Main Activity裡面,

![](https://i.imgur.com/LeeWdsb.png)

# 例外

其實也蠻多中文的文章講了,為什麼要用single activity

但鮮少人提到的是,即使遵守single activity的原則,但什麼時候仍然有例外情況

我自己遇到的是picture in picture的開發

其實pip在single activity和 multiple activity會有不同的行為,而我們應該從使用者預期的行為去做開發

如果pip是以single activity做開發,當pip 模式啟用時,整個app都會變為pip window,此時我們可以去其他的應用瀏覽資訊,但當我們從launch icon或stack返回自己的應用時,窗口會從pip的小窗口擴大為全螢幕

而如果pip是以多個activity開發,最好有一個明確的圖示表明pip的啟用,並且這種開發方式允許用戶一邊瀏覽您應用的其他資訊和頁面,一邊使用pip模式,當然,也能夠瀏覽其他應用

pip文檔

--

--

Factory 是什麼?簡單說的話就是幫你把東西做出來

首先來個看起來很像的ViewModel,差別在於他有傳入建構子

注意了,當建立viewModel時要傳入建構子,就必須必須必須用factory,而factory其實也可以直接放在ViewModel.kt裡面

最後來看用Factory的話Fragment要做甚麼改變

--

--