Подтвердить что ты не робот

Тема Android не установлена

У меня есть тема, которая отказывается применять к действиям - ни один из стилей не применяется. Если я не предоставляю атрибуты layout_width/layout_height для <Button>, он также получает ошибку времени выполнения, показывая, что класс Button не применяется.

/res/values/themes.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme" parent="android:style/Theme.Black">
        <item name="android:windowNoTitle">true</item>
        <item name="android:buttonStyle">@style/Button</item>
        <item name="android:windowBackground">@color/page_background_light</item>
        <item name="android:textAppearance">@style/TextAppearance</item>
    </style>
</resources>

/res/values/styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="TextAppearance" parent="@android:style/TextAppearance">
        <item name="android:textSize">12sp</item>
        <item name="android:textColor">@color/darkblue</item>
    </style>
    <style name="Button" parent="@android:style/Widget.Button">
        <item name="android:layout_width">fill_parent</item> 
        <item name="android:layout_height">wrap_content</item>
        <!--<item name="android:textColor">#3C2F4F</item>
        <item name="android:textSize">20dip</item>-->
    </style>
</resources>

и соответствующий параметр манифеста:

<application android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/Theme">

Какая очевидная ошибка у меня отсутствует?

4b9b3361

Ответ 1

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

У меня была специальная тема, определенная в папке res\values, но не в папках values-v11 и values-v14. Который, я думаю, сделал это так, что в некоторых устройствах (особенно 2, которые я тестировал!), Тема не могла быть применена, потому что ее не было.

Теперь я вижу, что свойства, установленные в моей настраиваемой теме (применяются на уровне приложения), вступают в силу.

Ответ 2

Мне нужно было явно определять тему для каждого <activity>.

Ответ 3

В соответствии с этим ответом, кажется, что невозможно создать стили layout_width и layout_height. Пока он компилируется, исключение, которое он вызывает, следующее:

E/AndroidRuntime(4117): java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.example/com.example.MainActivity}:
java.lang.RuntimeException: Binary XML file line #79: You must supply a
layout_width attribute.

Я не уверен, почему это так, но может быть обходной путь. Как следует из этого вопроса, вы можете указать ссылку как параметр ширины и высоты.

Опять же, мой опыт в том, что Android не поддерживает поддержку размеров виджета через стили.

Ответ 4

Просто из любопытства. Попробуйте переименовать свою тему в нечто иное, как FooBar.

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

Ответ 5

EDIT: Я не уверен, что это была просто опечатка в вопросе, но в вашей основной теме вы неправильно указали стиль Android Theme.Black. В коде говорится:

<style name="Theme" parent="android:style/Theme.Black">

Когда он скажет:

<style name="Theme" parent="@android:style/Theme.Black">

Мне кажется, что Lint или компилятор хватит на вас за это, прежде чем запускать приложение, но, возможно, это поможет.