*活动加载后更改Android标题栏颜色*?

时间:2011-10-06 18:53:34

标签: android android-layout

当Android版本支持使用下面发布的代码时,我更改了标题栏。但是,一旦Activity实际加载,我似乎无法更改标题栏的颜色。

请参阅以下示例:

activity.getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.page_title);
LinearLayout ll = ((LinearLayout)activity.getWindow().findViewById(R.id.page_title_bg));
ll.setBackgroundResource(R.drawable.page_title_bg_app_online);

布局非常简单,只包含背景布局和TextView以显示应用程序的标题。

我尝试使用setBackbroundResrouce设置后台资源,但无法显示更改后的标题。我做了更改后,我也尝试使布局无效。

1 个答案:

答案 0 :(得分:1)

只是一个想法:你是否尝试设置文本视图的背景(而不是布局)?

很奇怪......刚试过,它对我来说很好用:

    boolean isTitleCustomizible;
    try {
        isTitleCustomizible = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
    } catch (Exception e) {
        isTitleCustomizible = false;
    }

    super.setContentView(resId);

    if (isTitleCustomizible) {
        getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
                R.layout.title_bar);

        View root = getWindow().findViewById(R.id.toolBarRoot);
        if (root != null) {
            root.setBackgroundResource(android.R.drawable.editbox_background_normal);
        }
    }

onClick中的代码:

        private boolean toggle;

        @Override
        public void onClick(View v) {
            View root = findViewById(R.id.toolBarRoot);
            if (root != null) {
                if (toggle)
                    root.setBackgroundResource(0);
                else
                    root.setBackgroundResource(android.R.drawable.editbox_background_normal);
                toggle = !toggle;
            }
        }