如何使操作栏和标签透明

时间:2014-06-26 01:27:16

标签: android android-actionbar fragment transparent

为了跟上谷歌的新面貌,我试图让我的两个顶部条形透明,而且还没有成功。错误/没有发生变化

这是我制作标签的活动(不确定这是否应该在哪里设置)

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    mTitle = mDrawerTitle = getTitle();

    // load slide menu items
    navMenuTitles = getResources().getStringArray(R.array.nav_drawer_items);

    // nav drawer icons from resources
    navMenuIcons = getResources()
            .obtainTypedArray(R.array.nav_drawer_icons);

    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerList = (ListView) findViewById(R.id.list_slidermenu);

    navDrawerItems = new ArrayList<NavDrawerItem>();

    // adding nav drawer items to array
    // Home
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[0], navMenuIcons.getResourceId(0, -1)));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[1], navMenuIcons.getResourceId(1, -1)));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[2], navMenuIcons.getResourceId(2, -1), true, "22"));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[3], navMenuIcons.getResourceId(3, -1)));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[4], navMenuIcons.getResourceId(4, -1), true, "+10"));
    navDrawerItems.add(new NavDrawerItem(navMenuTitles[5], navMenuIcons.getResourceId(5, -1)));

    getActionBar().setDisplayHomeAsUpEnabled(true);

    getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
    ActionBar actionBar = getActionBar();
    actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#330000ff")));
    actionBar.setStackedBackgroundDrawable(new ColorDrawable(Color.parseColor("#550000ff")));

enter image description here

这给了我一个错误。我目前正在使用自定义主题。我做错了什么我知道上面的代码是针对一项活动的。在我的风格中是否有一些我缺少的东西,或者我把它放在错误的活动中。

2 个答案:

答案 0 :(得分:1)

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

getActivity().getWindow()

答案 1 :(得分:0)

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

您编写的代码序列错误。 您的代码:

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

问题:首先设置操作栏的背景,然后使用getActionBar()方法访问活动操作栏。你需要首先获得Action Bar然后为它设置背景。

修改后的代码:

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