Пользовательская тема Android на 2.3, голографическая тема на 4.0 - PullRequest
0 голосов
/ 05 февраля 2012

Я прочитал http://android -developers.blogspot.com / 2012/01 / скажем до свидания-menu-button.html , но есть некоторые проблемы. Для предварительного сотового я хочу пользовательский заголовок, для пост-сотового я хочу по умолчанию. Когда я пытаюсь запустить свое приложение на ICS

android.util.AndroidRuntimeException: You cannot combine custom titles with other title features

Если я удаляю пользовательский заголовок, он отлично работает во всех выпусках, просто без пользовательского заголовка.

в values-v11 У меня есть файл themes.xml с таким содержанием:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="customTheme" parent="android:Theme.Holo.Light">
    </style>
</resources>

Таким образом, мой документ темы говорит, что в основном не используется пользовательская тема.

Если я удалю

requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title);

тогда тема правильно отображается в ICS.

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

Спасибо, А.

1 Ответ

2 голосов
/ 07 февраля 2012

Очень похоже на этот вопрос.Я предполагаю, что панель действий считается функцией заголовка, поэтому ее отключение избавляет от исключения.

Я все еще немного смущен этим вопросом.Вы говорите, что хотите использовать заголовок по умолчанию для пост-соты, но вы не можете использовать пользовательский заголовок, а также использовать панель действий по умолчанию.Если вы действительно хотите сделать то, что вы просите (пользовательский заголовок для <3.0, панель действий по умолчанию для> = 3.0), вам нужно проверить Build.VERSION.SDK_INT перед вызовом window.requestFeature и т. Д. Вот как это делается в actionBarCompat пример, который делает именно такие вещи.

...