2013-04-05 76 views
2

在Facebook應用程序v2.3中,當您從一個活動(或frgament?)導航到另一個活動時,操作欄在所有活動(或碎片?)中保持固定。例如,如果您從新聞提要導航到某人的個人資料頁面,則操作欄保持不變,並且刷新下面的頁面。所以我的問題是,這種行爲是否可能只使用活動?或者我應該只有一個主要活動,併爲所有子活動分段?如何在所有活動中保持操作欄固定?

+1

我相信這是一項主要活動,然後是碎片。 – Rawkode 2013-04-05 14:18:53

回答

4

一個活動和儘可能多的片段,你需要。

的時刻,你叫startActivity(intent);框架將推出的活動過渡動畫及其所有內容(包括操作欄)

+0

我禁用了我的應用程序中活動轉換的動畫,並且其工作非常完美。感謝提示。 – ufdeveloper 2013-04-05 14:33:52

+0

這是我沒有想到的另一種方式。但請記住,這意味着ActionBar仍在被替換,它根本沒有動畫。所以在較慢/較舊的設備上可能看起來並不完美。 – Budius 2013-04-05 14:36:50

+0

那麼你建議有不同的片段而不是活動?什麼是更好的方法? – ufdeveloper 2013-04-05 14:54:40

2

您可以只使用活動這一行爲。這些是您在每個活動中需要的方法。

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.main_activity, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case android.R.id.button_1: 
      handleButton1(); 
      return true; 
     case android.R.id.button_2: 
      handleButton2(); 
      return true; 
      ... 
     default: 
      ... 
    } 
} 

此外,您可以訪問您的onCreate中的操作欄對象,並以您想要的方式對其進行自定義。例如,啓用home鍵等:

ActionBar actionBar = getActionBar(); 
actionBar.setDisplayHomeAsUpEnabled(true); 
    ... 

但是,如果你有很多的活動,你可能不希望這樣做在他們每個人。相反,您可以將此代碼放在超級活動中,然後通過其他活動擴展它。這是首選的方法 - 你只在一個地方做。

+1

感謝您的評論,但我想在轉換到其他活動期間保持固定的操作欄。使用上述方法刷新整個活動,我不希望操作欄刷新 – ufdeveloper 2013-04-06 19:25:25

相關問題