2013-07-03 96 views
4

我剛開始開發一個Android應用程序,根本沒有任何經驗。我已經閱讀了很多關於活動/片段/小部件的內容,但似乎沒有爲我的問題找到明確的答案:Action Bar as Fragment

我可以創建應用程序的操作欄作爲片段,因此無論何時更改活動我會簡單地稱之爲一個動作欄(即一個片段)?我打算開發一個動態用戶界面來爲單個選項創建片段,並且認爲在所有頁面上都有一個通用的Action Bar會很容易。

+0

歡迎來到SO,蘇珊。我已經投票提出了你的問題,以提高它的可見度。 – Brian

+0

@jahroy - 當我回顧它時沒有任何答案,因此得票最高。 – Brian

+1

以下是來自[本頁](http://developer.android.com/guide/topics/ui/menus.html)的引用:「如果您的應用程序包含多個活動,並且其中一些提供了相同的選項菜單,請考慮創建一個活動除了onCreateOptionsMenu()和onOptionsItemSelected()方法之外什麼都沒有實現,然後爲每個應該共享相同選項菜單的活動擴展這個類...._「有你的答案。 – jahroy

回答

2

當您想要在所有活動中自定義ActionBar時,第一步是在XML中創建自定義主題。

在這個主題中,你可以自定義幾乎所有

請參閱本優秀的博客文章:http://android-developers.blogspot.be/2011/04/customizing-action-bar.html

使用的動作條片段是瘋了!

如果您想在所有活動中以編程方式添加一些代碼,只需擴展一個自定義活動,例如擴展活動的MyCustomActivity即可。

public class MyCustomActivityextends Activity{ 

在這個類中,你可以使用getActionBar(),並根據您的需求

+1

擴展活動聽起來像一個非常簡單的方法,讓所有活動共享相同的ActionBar +1 – jahroy

0

如果你想對所有的活動使用繼承一個動作條調整它。創建一個簡單地處理ActionBar的活動,就像你想要的那樣,並將其設置爲這樣的超類。

public class ActionBarActivity extends Activity{ 

    public void onCreate(...) { 
    ActionBar actionBar = getActionBar(); 
    // + some other method calls of your choice 
    } 

    public onCreateOptionsMenu(Menu menu){ 
     // create your actionbaritems here 
    } 

    public boolean onOptionsItemSelected(MenuItem item) { 
     // handle your click events for the items here 
    } 
} 

現在你可以使用這個活動對所有的活動具有繼承:

public class MyActivity extends ActionBarActivity{ 
... 
} 

有了這個設置,你可以自由,只要你喜歡使用的片段。

請記住,每次調用新的Activity時,都會調用超類的回調函數。

+1

爲什麼這是downvoted?作爲Android新手,我很好奇這是否是一個不好的建議。從我讀過的內容來看,這聽起來像是一個非常可靠的方法,得到了許多(包括Google)的支持。 – jahroy

+0

這個答案應該從來沒有downvoted。以下是直接從[Android文檔](http://developer.android.com/guide/topics/ui/menus.html)引用的引用:「_Tip:如果您的應用程序包含多個活動,並且其中一些提供了相同的選項菜單,請考慮創建一個除onCreateOptionsMenu()和onOptionsItemSelected()方法之外什麼都不實現的活動,然後爲每個應該共享相同選項菜單的活動擴展此類..._「 – jahroy

0

我想你在想什麼: 你希望你的操作欄在每個屏幕上都一樣,只需要編程一次。 我使用的方法是,操作欄位於根活動中,包含單個viewpager。用戶交互的所有屏幕都是該視圖分頁器中的片段。

如果您在eclipse中創建一個空白的android項目,並選擇actiobar與選項卡,該項目將爲您設置它,你可以看到如何工作。

0

在大多數情況下,這將是一個不必要的複雜。一旦你開始了,你可能會發現只需幾行簡單的代碼就可以在每個活動中創建一個「相同」的Action Bar .Memes等可以稍後添加。在這個階段更好的問題可能是我應該使用行動吧Sherlock來更好地支持舊設備?您應該考慮應用的整體結構,例如activities/fragment activities/fragments/tabs,以便您能夠快速開展工作,在開發完整解決方案時可以隨時擴展。