簡體   English   中英

Android動作欄回家

[英]Android action bar home

很簡單,

操作欄的左上角是應用程序的默認圖標。 在大多數應用中,它會被點擊並返回主頁。 我正在使用2個設備,3.2和2.3.3,我正在嘗試在3.2上實現操作欄而不影響另一個。

我想它的實現方式如下:

case android.R.id.home:            
         Intent intent = new Intent(this, ActOnThisActivity.class);            
         intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
         startActivity(intent);            
         return true;  

最后一件事是設置標志

getActionBar().setHomeButtonEnabled(true);

這應該可行,但任何熟悉android的人都知道,這不能在11或更低的API上運行。 所以它將運行在3.2+而不是2.3.3。 有沒有辦法指定此方法只適用於api11及以上?

請注意@TargetApi(11)注釋可能有效,但我有一些奇怪的錯誤。

從sdk示例中查看ActionBarCompat可以讓您了解如何執行此操作。

ActionBarHelper類中的以下代碼(來自示例)決定不同版本的實例。

public static ActionBarHelper createInstance(Activity activity) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
        return new ActionBarHelperICS(activity);
    } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        return new ActionBarHelperHoneycomb(activity);
    } else {
        return new ActionBarHelperBase(activity);
    }
}

看看ActionbarSherlock - 我在幾個應用程序中使用它,它完美無瑕。 在Honeycomb(3.0)以下的Android版本中完美模仿Action Bar。

http://actionbarsherlock.com/

幾乎所有與操作欄交互的主要API。 這是確切的API getSupportActionBar()公開的API。

有沒有辦法指定此方法只適用於api11及以上?

if (Build.VERSION.SDK_INT>=Build.VERSION_CODES.HONEYCOMB) {
  getActionBar().setHomeButtonEnabled(true);
}

暫無
暫無

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

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