簡體   English   中英

不同的菜單為不同的片段

[英]Different menu for different fragments

我的活動有2個片段。
一次可見1個片段,每個片段都有不同的選項菜單。

我可以通過兩種不同的方式實現這種行為。

1 - 我可以通過調用每個片段中的onCreateOptionsMenu為每個片段添加不同的菜單。
2 - 我只能在活動級別有一個菜單,可以選擇在onPrepareOptionsMenu顯示特定選項

我想知道的是:
哪個是實現此功能的首選方式?
推薦什么?

希望這可以幫助

將項目添加到操作欄

您的片段可以通過實現onCreateOptionsMenu()將菜單項提供給活動的“選項”菜單(以及操作欄)。 但是,為了使此方法接收調用,您必須在onCreate()期間調用setHasOptionsMenu(),以指示該片段要將項添加到Options菜單(否則,片段將不會接收對onCreateOptionsMenu()的調用)。

然后,您從片段添加到“選項菜單”的任何項目都將附加到現有菜單項。 當選擇菜單項時,片段還接收對onOptionsItemSelected()的回調。

您還可以在片段布局中注冊視圖,以通過調用registerForContextMenu()來提供上下文菜單。 當用戶打開上下文菜單時,片段將接收對onCreateContextMenu()的調用。 當用戶選擇一個項目時,該片段接收對onContextItemSelected()的調用。

http://developer.android.com/guide/components/fragments.html

我會遵循第一個選項,因為每個片段的專用資源菜單看起來更干凈,並且還降低了為了維護可見和不可見的代碼復雜性(如果你要通過onPrepareOptionsMenu並且有代碼隱藏&顯示不同的菜單)。

如果你的片段中有一些動作,那么你可以創建一個基礎片段類,每個片段都會擴展。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM