Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 夏洛克行动吧';s菜单项背景_Android_Actionbarsherlock - Fatal编程技术网

Android 夏洛克行动吧';s菜单项背景

Android 夏洛克行动吧';s菜单项背景,android,actionbarsherlock,Android,Actionbarsherlock,我在Sherlock action bar中渲染自定义视图时遇到问题。发生的事情是,我已经成功地在操作栏中设置了自定义视图,用于在中心设置标题文本视图,但当我设置其他菜单项(如刷新)时,它的背景显示为黑色。“主页”按钮也会发生同样的情况。请浏览以下快照 正如您在这张图片中看到的,当我设置主页按钮可见或设置刷新菜单项时,它不应该以黑色背景显示 在我的活动屏幕中 protected void onCreate(Bundle savedInstanceState) { super.onCrea

我在Sherlock action bar中渲染自定义视图时遇到问题。发生的事情是,我已经成功地在操作栏中设置了自定义视图,用于在中心设置标题文本视图,但当我设置其他菜单项(如刷新)时,它的背景显示为黑色。“主页”按钮也会发生同样的情况。请浏览以下快照

正如您在这张图片中看到的,当我设置主页按钮可见或设置刷新菜单项时,它不应该以黑色背景显示

在我的活动屏幕中

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:

自定义导航视图显示在应用程序图标和任何操作按钮之间,可能会使用其中的任何可用空间

此方法只向工具栏添加新视图,但不设置“查看整个工具栏”


看一看——这是一个动作栏的样式生成器。请注意切换按钮“样式兼容性”。

我发现解决这个问题的方法不是我想要的方法,而是另一种方法。实际上,我已经为各种屏幕创建了以屏幕标题为中心的图像,并将其设置为操作栏背景,而不是创建自定义视图,SherlockActionBar足够灵活,可以隐藏显示在左上角的默认标题。我所做的就是

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