2013-04-15 3 views
2

Можно ли манипулировать стилем текстового поля, найденного в API 17 android в API 8 ??EditText Styling

Текстовое поле в более низких API очень отличается по сравнению с более высоким API. Есть ли способ дать единый внешний вид для этих компонентов?

ответ

2

Только EditText? Или вы хотите, чтобы каждый виджет был похож на виджеты pre holo? Если это так, то установка этого в качестве темы поможет:

<application 
     [...] 
     android:theme="@android:style/Theme" > 
     [...] 
</application> 

Однако, если вы просто хотите иметь EditText быть «не-holofied» вы можете сделать это:

<EditText 
     android:id="@+id/spinnermap" 
     style="@style/MyEditText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" /> 

значения/стили .xml:

<style name="MyEditText" parent="android:Widget.Spinner"></style> 

и установить тему на холо (.Light) и Theme (.Light) для предварительного HC.

Или, если вы хотите, чтобы объединить все в одну тему со всем, кроме виджета EditText быть голограмма, то вы можете сделать это:

значения-v11/styles.xml: // v11, потому что предварительно HC темы уже есть стиль EditText, который вы хотите.

<style name="MyTheme" parent="@android:style/Theme.Holo"  
    <item name="android:editTextStyle">@style/MyEditText></item> 
</style> 
+0

Это то же самое, что и темы sherlock ??? –

+0

Да, просто установить родитель Шерлок тему – Ahmad

+0

Doing следующего <имени стиль = «autoStyle» родительского = «@android: стиль/Theme.Sherlock.Light»> дает мне ресурс не найден ошибке, я также установили абс как библиотеку. –

1

Или вы можете использовать это:

https://github.com/Prototik/HoloEverywhere

, если вы хотите иметь Холо на старых устройствах (я имею в виду, что вы можете сделать это в обратном порядке - заменить старые элементы управления выглядят линии новые). Эта библиотека также работает с ActionBar Sherlock.

4

Чтобы использовать Андроид v8 стиль EditText, изменить цвет фона на EditText:

Android: фон = "@ андроид: рисуем/edit_text"

или использовать весь стиль, используемый в v8:

<style name="Widget.EditText"> 
    <item name="android:focusable">true</item> 
    <item name="android:focusableInTouchMode">true</item> 
    <item name="android:clickable">true</item> 
    <item name="android:background">@android:drawable/edit_text</item> 
    <item name="android:textAppearance">?android:attr/textAppearanceMediumInverse</item> 
    <item name="android:textColor">@android:color/primary_text_light</item> 
    <item name="android:gravity">center_vertical</item> 
</style>