簡體   English   中英

Android:動態更改ActionBar圖標?

[英]Android: dynamically change ActionBar icon?

我想動態更改ActionBar中的“home”圖標。 這可以在v14中使用ActionBar.setIcon(...)輕松完成,但我無法在以前的版本中找到完成此操作。

如果您的操作欄像Sherlock一樣工作並且基於菜單項,這是我的解決方案:

@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    MenuItem switchButton = menu.findItem(R.id.SwitchSearchOption);     
    if(searchScriptDisplayed){
        switchButton.setIcon(R.drawable.menu_precedent);
    }else{
        switchButton.setIcon(R.drawable.icon_search);
    }
    return super.onPrepareOptionsMenu(menu);

}

如果您使用的是Google提供的ActionbarCompat代碼,則可以通過ActionBarHelperBase.java類訪問主頁圖標,以獲取API v4及更高版本。

    //code snippet from ActionBarHelperBase.java
    ...
    private void setupActionBar() {
    final ViewGroup actionBarCompat = getActionBarCompat();
    if (actionBarCompat == null) {
        return;
    }

    LinearLayout.LayoutParams springLayoutParams = new LinearLayout.LayoutParams(
            0, ViewGroup.LayoutParams.MATCH_PARENT);
    springLayoutParams.weight = 1;

    // Add Home button
    SimpleMenu tempMenu = new SimpleMenu(mActivity);
    SimpleMenuItem homeItem = new SimpleMenuItem(tempMenu,
            android.R.id.home, 0, mActivity.getString(R.string.app_name));
    homeItem.setIcon(R.drawable.ic_home_ftn);
    addActionItemCompatFromMenuItem(homeItem);

    // Add title text
    TextView titleText = new TextView(mActivity, null,
            R.attr.actionbarCompatTitleStyle);
    titleText.setLayoutParams(springLayoutParams);
    titleText.setText(mActivity.getTitle());
    actionBarCompat.addView(titleText);
}
...

您應該能夠將代碼修改為擴展ActionBarActivity的活動可訪問的主頁按鈕,並以這種方式進行更改。

蜂窩似乎有點難,它似乎沒有這么容易訪問。 猜測,它的id也應該是android.R.id.home所以你可以從ActionBarHelperHoneycomb.java中的視圖中提取它

我會說你做這樣的事情:

getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_menu_drawer);

請參閱鏈接如何更改圖標actionBarCompat

如果提供了清單,ActionBar將使用清單的android:logo屬性。 這使您可以為圖標(Launcher)和徽標(ActionBar等)使用單獨的可繪制資源。

暫無
暫無

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

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