Изменить цвет строки заголовка Android * после * загрузки активности? - PullRequest
0 голосов
/ 06 октября 2011

Я изменяю строку заголовка, когда версия Android поддерживает, используя код, размещенный ниже. Но мне кажется, что я не могу изменить цвет строки заголовка после того, как действие действительно загрузилось.

См. Следующий пример:

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 Ответ

1 голос
/ 06 октября 2011

Просто мысль: вы пытались установить фон вашего текста (не макет)?

Странно ... Только что попробовал и у меня работает нормально:

    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;
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...