Android 如何使actionbar和选项卡透明

Android 如何使actionbar和选项卡透明,android,android-actionbar,fragment,transparent,Android,Android Actionbar,Fragment,Transparent,为了跟上谷歌的新外观,我尝试使我的两个顶部栏透明,但没有成功,即错误/没有变化 下面是我制作选项卡的活动(不确定这是否是我应该设置的位置) @覆盖 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTitle=mDrawerTitle=getTitle(); //加载幻灯片菜单项 navMenuTitles=get

为了跟上谷歌的新外观,我尝试使我的两个顶部栏透明,但没有成功,即错误/没有变化

下面是我制作选项卡的活动(不确定这是否是我应该设置的位置)

@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTitle=mDrawerTitle=getTitle();
//加载幻灯片菜单项
navMenuTitles=getResources().getStringArray(R.array.nav\u抽屉\u项目);
//参考资料中的导航抽屉图标
navMenuIcons=getResources()
.obtainTypedArray(R.array.nav_drawer_图标);
mDrawerLayout=(抽屉布局)findViewById(R.id.抽屉布局);
mDrawerList=(ListView)findViewById(R.id.list\u slidermenu);
navDrawerItems=新的ArrayList();
//将导航抽屉项添加到阵列
//家
添加(新的NavDrawerItem(navMenuTitles[0],navMenuIcons.getResourceId(0,-1));
添加(新的NavDrawerItem(navMenuTitles[1],navMenuIcons.getResourceId(1,-1));
添加(新的NavDrawerItem(navMenuTitles[2],navMenuIcons.getResourceId(2,-1),true,“22”);
add(新的NavDrawerItem(navMenuTitles[3],navMenuIcons.getResourceId(3,-1));
添加(新的NavDrawerItem(navMenuTitles[4],navMenuIcons.getResourceId(4,-1),true,“+10”);
add(新的NavDrawerItem(navMenuTitles[5],navMenuIcons.getResourceId(5,-1));
getActionBar().setDisplayHomeAsUpEnabled(true);
getWindow().requestFeature(窗口.功能\u操作\u栏\u覆盖);
ActionBar ActionBar=getActionBar();
actionBar.setBackgroundDrawable(新的ColorDrawable(Color.parseColor(“#330000ff”));
actionBar.setStackedBackgroundDrawable(新的ColorDrawable(Color.parseColor(“#550000ff”));


这给了我一个错误。我当前正在使用自定义主题。我做错了什么,我知道上面的代码是针对某个活动的。我的样式中是否缺少某些内容,或者我是否将其放在了错误的活动中。

如果您是从片段中执行此操作,则需要调用:

getActivity().getWindow()

要使用此功能,您必须使用最小API版本11。请检查清单文件中提到的API最小版本。还要检查应用程序的生成目标集

您以错误的顺序编写了代码。 您的代码:

        actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#330000ff")));
        actionBar.setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#550000ff")));
        actionBar = getActivity().getActionBar(); 
        actionBar = getActivity().getActionBar();
        actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#330000ff")));
        actionBar.setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#550000ff")));
问题:您首先为操作栏设置背景,然后使用getActionBar()方法访问活动操作栏。您需要先获取操作栏,然后为其设置背景

修改代码:

        actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#330000ff")));
        actionBar.setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#550000ff")));
        actionBar = getActivity().getActionBar(); 
        actionBar = getActivity().getActionBar();
        actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#330000ff")));
        actionBar.setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#550000ff")));

错误是什么?请在getWindow()行中添加错误日志。requestFeature(Window.FEATURE\u ACTION\u BAR\u OVERLAY);I get无法解析方法“getWindow()谢谢你的回答,但是当你这么做的时候,代码会运行,但应用程序中没有变化。我有这个设置。这是活动还是碎片活动?这就是问题代码运行得很好,只是横条的透明度没有变化。但这是日志我已经更改了我放入代码的类。请看修订后的问题。这有什么用“getActionBar().setDisplayHomeAsUpEnabled(true);”尝试删除它并再次执行。