Android кнопка textAppearance - PullRequest
       15

Android кнопка textAppearance

7 голосов
/ 23 ноября 2011

Я могу изменить внешний вид текста кнопки, установив его прямо в объекте следующим образом:

<Button
        android:id="@+id/login_btn_bypass"
        android:textSize="15dp"
        android:textColor="#878787"
        android:textStyle="bold" />

, но не при использовании textAppearance в стиле

// in layout xml
<Button
    android:id="@+id/login_btn_login"
    android:textAppearance="@style/login_button_text_appearance" />

// in style definition 
<style name="login_button_text_appearance">
    <item name="android:textSize">15dp</item>
    <item name="android:textColor">#a7a7a7</item>
    <item name="android:textStyle">bold</item>
</style>

кто-нибудь знает почему?

Ответы [ 2 ]

12 голосов
/ 23 ноября 2011

Значения атрибутов, определенные с помощью textAppearance, применяются перед значениями атрибутов в стиле. Button - это TextView с примененным стилем, а стиль кнопки по умолчанию переопределяет ваш textAppearance (например, Android 2.3 установит для него значение?

textAppearance исключает стили в качестве значений, android:textAppearance="@style/login_button_text_appearance" - это обычно правильный способ установки textAppearance, но не для Button:

Если вы изменяете цвет текста на Button, вам следует также применять пользовательское фоновое изображение, потому что если вы этого не сделаете, одно устройство будет использовать темное фоновое изображение (Motorola Defy), а другое будет использовать свет изображение (htc desire), которое может затруднить чтение текста.

9 голосов
/ 23 ноября 2011

Я думаю, вы должны использовать:

style = "@style/login_button_text_appearance"

вместо:

android:textAppearance="@style/login_button_text_appearance"

android:textAppearance - это просто атрибут, подобный любому другому атрибуту (android:textSize, android:textStyle и т. Д.), И значение стиля недопустимо в качестве значения для этого атрибута.

РЕДАКТИРОВАТЬ:

<Button
    android:id="@+id/login_btn_login"
    style="@style/login_button_text_appearance" />
...