2015-09-15 2 views
0

Я реализую floating label согласно материалу дизайна. Теперь я хочу изменить цвет нескольких элементов, например, изменить цвет подсказки по умолчанию (идентификатор электронной почты, который сейчас черный) и строку под ним . enter image description hereКак изменить цвет плавающей метки TextInputLayout

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

<resources> 
<style name="AppTheme" parent="AppTheme.BaseTheme"></style> 

<style name="AppTheme.BaseTheme" parent="Theme.AppCompat.Light.NoActionBar"> 

</style> 
<style name="Signin_EditText" parent="TextAppearance.AppCompat"> 
    <item name="colorAccent">@color/white</item> 
    <item name="colorPrimary">@color/white</item> 

    <item name="android:editTextColor">@color/white</item> 
    <item name="colorControlActivated">@color/white</item> 
    <item name="colorControlHighlight">@color/white</item> 
</style> 

  <android.support.design.widget.TextInputLayout 
       android:id="@+id/text_input_layout_email" 
       android:layout_width="match_parent" 
       app:hintTextAppearance="@style/Signin_EditText" 
       android:layout_height="wrap_content"> 

       <EditText 
        android:id="@+id/edittext_emailid" 
        android:layout_width="match_parent" 
        android:textSize="14sp" 
        android:minHeight="35dp" 
        android:layout_height="wrap_content" 
        android:textColorHint="@color/white" 
        android:inputType="textEmailAddress" 
        android:textColor="@color/white" 
        android:hint="@string/emailid"/> 
      </android.support.design.widget.TextInputLayout> 
+0

'colorControlActivated 'и т. д. являются атрибутами * theme *. Они будут * НЕ * разрешаться, если вы примените их через атрибут android: textAppearance' или 'style'. Атрибуты темы должны применяться с помощью атрибута 'android: theme'. –

ответ

0

Попробуйте это.

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorControlNormal">@color/primary_light</item> 
    <item name="colorControlHighlight">@color/primary_light</item> 
    <item name="colorControlActivated">@color/primary_light</item> 
    <item name="colorAccent">@color/primary_light</item> 
    <item name="colorPrimary">@color/primary_light</item> 
    <item name="colorPrimaryDark">@color/secondary_dark</item> 
</style> 
+0

это не помогло бы мне, так как это установило бы стиль во всем приложении, я хочу установить его для одного конкретного edittext. –

-1

Вы не можете переопределить цвета colorAccent, colorPrimary, colorPrimaryDark или любые другие цвета, которые используются для Тематических по AppCompact. Вы можете определить их только в теме приложения, которую вы будете использовать в файле манифеста.

Если вы хотите настроить свои цвета темы, вы должны определить их в BaseTheme, которые вы используете в файле манифеста <application... тег, как показано ниже

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorControlNormal">@color/primary_light</item> 
    <item name="colorControlHighlight">@color/primary_light</item> 
    <item name="colorControlActivated">@color/primary_light</item> 
    <item name="colorAccent">@color/primary_light</item> 
    <item name="colorPrimary">@color/primary_light</item> 
    <item name="colorPrimaryDark">@color/secondary_dark</item> 
</style> 

файл манифеста:

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
... 
</application> 
Смежные вопросы