2015-11-06 31 views
0

如果我們看一幫的Chromecast應用中,我們看到投放按鈕在不同的意見/活動依然存在。也就是說,當我們在主要活動中連接到chromecast並稍後輸入錄像機活動時,投射按鈕仍然可用。多個視圖/活動控制CastButton

編程,究竟是什麼期望的行爲最好的設計?我所能想到的就是首先開始檢測主要活動中可用的現有chromecast設備,並繼續將此投射按鈕作爲參數傳遞給其他需要顯示投射按鈕的類。這是否有效?或者我們基本上會在不同的類中有很多重複的代碼?你們是怎麼用這種期望的行爲來設計你的演員應用?

回答

1

你不通過周圍活動之間鑄按鈕等您的程序基本上是與多個片段只是一個活動,在這種情況下,你沒有任何問題,或者如果它有多個活動,每個活動增加了將按鈕投射到其操作欄;首選版本是使用ActionProvider版本,但這不是必需的。更重要的是,如果你有多個活動,你想保持與每個單獨活動之外相關的狀態;所以用一個單身人士來維護這個狀態是一個好方法。

我還建議你看看CastCompanionLibrary(CCL),並嘗試使用該庫來構建您的演員應用(或將演員功能添加到您現有的應用),因爲該庫負責處理一些重要的演員相關的任務給你。

+0

感謝。所以假設我們有一個活動(沒有操作欄)與多個片段。我們仍然會使用單例方法來保持不同fragmentActivities中的投射按鈕之間的狀態嗎?我想我的其他問題是,只要我的活動之一,將擴充ActionBarActivity或FragmentActivity,我將能夠無需建立在我的應用程序自定義按鈕,投加的Chromecast支持?因爲我們可以在不同的類之間使用單例方法簡單地維護狀態,並且添加一個投射按鈕可以在任何視圖中發生? – jensiepoo

+0

對於第一個問題,我有點困惑,因爲你提到的一個活動,但隨後你談談「在不同的fragmentActivities ..cast按鈕」? FragmentActivity是一項活動,那麼您通過一項活動和多個FragmentActivities意味着什麼?至於第二部分,維護狀態對於你的應用來說是內在的東西,只要你在你的應用中有不同的「頁面」(無論這個數量是多個碎片還是多個活動),擁有投影按鈕在所有頁面上都可見。 –

+0

我的意思是說一個活動和一堆其他視圖不能擴展ActionBarActivity或FragmentActivity。擴展線性佈局的類是否能夠顯示投射按鈕?或者如果你想顯示一個按鈕,你是否總是需要擴展這兩個類中的任何一個?我一直認爲,只要您已將MRB添加到佈局,就可以在任何地方發現mMediaRouterButton.setVisible(View.Visible)。 – jensiepoo