簡體   English   中英

Sherlock動作欄的菜單項背景

[英]Sherlock action bar's menu item background

我遇到了在Sherlock操作欄中渲染自定義視圖的問題。 發生了什么事情我已成功設置自定義視圖在操作欄中設計為將標題文本視圖設置在中心,但是當我設置其他菜單項如刷新時,它的背景顯示為黑色。 主頁按鈕也會發生同樣的事情。 請仔細閱讀以下快照。

自定義Sherlock動作欄

正如您在此圖像中看到的那樣,當我將主頁按鈕設置為可見或設置刷新菜單項時,它不應顯示為黑色背景。

在我的活動屏幕中

protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.menu_activity);
   .... 
   View customNav = LayoutInflater.from(this).inflate(R.layout.custom_navigation, null);
   TextView textView = (TextView)customNav.findViewById(R.id.screen_title);
   textView.setText("Category");
   getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
   getSupportActionBar().setCustomView(customNav);
   getSupportActionBar().setDisplayHomeAsUpEnabled(true);
   getSupportActionBar().setDisplayShowHomeEnabled(true);   
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0,Constants.REFRESH_ITEM_ID,0,Constants.LABEL_REFRESH)
        .setIcon(R.drawable.ic_refresh)
        .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    return true;
}

我已經嘗試了很多,但未能解決它。請幫助我。 提前致謝。

您似乎在清單文件中使用Theme.Sherlock.Dark進行整個應用程序或此活動。 這是ActionBar的正常行為 - 它由樣式定義,但您的自定義視圖元素具有自己的背景,文本樣式等...來自setCustomView()javadoc:

應用程序圖標和任何操作按鈕之間會出現自定義導航視圖,並可能使用此處可用的任何空間

此方法只是向條形圖添加新視圖,但不設置“整條視圖”。

看一下http://jgilfelt.github.com/android-actionbarstylegenerator - 這是一個動作欄的樣式生成器。 注意切換按鈕“樣式兼容性”。

我已經找到了解決方案,這不是我想要的方式,而是另一種方式。 實際上我已經為各種屏幕創建了帶有居中屏幕標題的圖像,並將其設置為操作欄背景而不是創建自定義視圖,而SherlockActionBar足夠靈活,可以隱藏左上角顯示的默認標題。 我所做的就是。

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar()
            .setBackgroundDrawable(getResources().getDrawable(R.drawable.menu_head));

暫無
暫無

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

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