TextInputLayout의 플로팅 레이블 색상을 변경하는 방법


210

TextInputLayoutGoogle에서 출시 한 새로운 기능과 관련 하여 플로팅 라벨 텍스트 색상을 어떻게 변경합니까?

스타일 colorControlNormal에서 colorControlActivated, 설정 colorControlHighLight은 도움이되지 않습니다.

이것이 내가 지금 가진 것입니다.

이것이 내가 지금 가진 것입니다


8
선 색상을 빨간색으로 변경하는 방법은 무엇입니까?
Vlad

6
@ Vlad161 colorAccent
Kyle Horkley

@ Vlad161은 어디를 설정할지 설명 할 수 colorAccent있습니까? 사용자 정의 스타일 colorAccent을 검은 색으로 변경 colorControlNormal했는데 선은 여전히 기본 스타일의 내용을 반영합니다 .
ElliotM


다음 링크를 확인하십시오. 힌트를 표시하고 밑줄을 긋기 위해 다른 색상을 설정했습니다 : https://stackoverflow.com/a/45349177/3392323
SAndroidD

답변:


358

정상적인 상태에서 작동하는 아래 코드를 사용해보십시오.

 <android.support.design.widget.TextInputLayout
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:theme="@style/TextLabel">

     <android.support.v7.widget.AppCompatEditText
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:hint="Hiiiii"
         android:id="@+id/edit_id"/>

 </android.support.design.widget.TextInputLayout>

스타일 폴더 텍스트 레이블 코드

 <style name="TextLabel" parent="TextAppearance.AppCompat">
    <!-- Hint color and label color in FALSE state -->
    <item name="android:textColorHint">@color/Color Name</item> 
    <item name="android:textSize">20sp</item>
    <!-- Label color in TRUE state and bar color FALSE and TRUE State -->
    <item name="colorAccent">@color/Color Name</item>
    <item name="colorControlNormal">@color/Color Name</item>
    <item name="colorControlActivated">@color/Color Name</item>
 </style>

앱의 주요 테마로 설정하면 상태 만 강조 표시됩니다.

 <item name="colorAccent">@color/Color Name</item>

최신 정보:

UnsupportedOperationException : api 16 이하에서 색상으로 변환 할 수 없음 : type = 0x2

해결책

최신 정보:

재료 구성 요소 라이브러리를 사용하고 있습니까

기본 테마에 아래 줄을 추가 할 수 있습니다

 <item name="colorPrimary">@color/your_color</item> // Activated State
 <item name="colorOnSurface">@color/your_color</item> // Normal State

또는 noraml 상태와 활성화 상태에서 다른 색상을 원하고 사용자 정의가 아래 코드를 따르고 싶습니까?

<style name="Widget.App.TextInputLayout" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
    <item name="materialThemeOverlay">@style/ThemeOverlay.App.TextInputLayout</item>
    <item name="shapeAppearance">@style/ShapeAppearance.App.SmallComponent</item> //Changes the Shape Apperance
    <!--<item name="hintTextColor">?attr/colorOnSurface</item>-->   //When you added this line it will applies only one color in normal and activate state i.e colorOnSurface color
</style>

<style name="ThemeOverlay.App.TextInputLayout" parent="">
    <item name="colorPrimary">@color/colorPrimaryDark</item>  //Activated color
    <item name="colorOnSurface">@color/colorPrimary</item>    //Normal color
    <item name="colorError">@color/colorPrimary</item>        //Error color

    //Text Appearance styles
    <item name="textAppearanceSubtitle1">@style/TextAppearance.App.Subtitle1</item>
    <item name="textAppearanceCaption">@style/TextAppearance.App.Caption</item>

    <!--Note: When setting a materialThemeOverlay on a custom TextInputLayout style, dont forget to set editTextStyle to either a @style/Widget.MaterialComponents.TextInputEditText.* style or to a custom one that inherits from that.
    The TextInputLayout styles set materialThemeOverlay that overrides editTextStyle with the specific TextInputEditText style needed. Therefore, you dont need to specify a style tag on the edit text.-->
    <item name="editTextStyle">@style/Widget.MaterialComponents.TextInputEditText.OutlinedBox</item>
</style>

<style name="TextAppearance.App.Subtitle1" parent="TextAppearance.MaterialComponents.Subtitle1">
    <item name="fontFamily">@font/your_font</item>
    <item name="android:fontFamily">@font/your_font</item>
</style>

<style name="TextAppearance.App.Caption" parent="TextAppearance.MaterialComponents.Caption">
    <item name="fontFamily">@font/your_font</item>
    <item name="android:fontFamily">@font/your_font</item>
</style>

<style name="ShapeAppearance.App.SmallComponent" parent="ShapeAppearance.MaterialComponents.SmallComponent">
    <item name="cornerFamily">cut</item>
    <item name="cornerSize">4dp</item>
</style>

기본 테마에 아래 줄을 추가하거나 XML에서 스타일을 textinputlayout으로 설정할 수 있습니다

<item name="textInputStyle">@style/Widget.App.TextInputLayout</item>

6
와우, 나는 지금 약 일주일 동안이 일을하고 있습니다-나는이 질문에 여러 번 돌아 왔으며, 당신은 내가 가진 모든 질문에 대답했습니다.
ElliotM 2016 년

40
TextInputLayout 또는 EditText보기에서 오류 메시지를 설정하면 앱이 중단되었습니다.android.view.InflateException: Error inflating class TextView
Arvis

18
android:theme스타일을 주의해서 설정하면 ASUS Zenphone (및 기타 장치) TextInputLayout에서 InflateException충돌이 발생합니다.
friederbluemle

13
뉴저지 안녕하세요, 죄송 즉, 나는이 일어나고있는 이유를 알고하지 않습니다하지만 난 textinputlayout로 설정 오류를 사용할 때조차 작동 괜찮 ThemeOverlay.AppCompat.Light에 TextAppearance.AppCompat 변경
Brahmam 야 마니

11
부모님이 ThemeOverlay.AppCompat.LightASUS Zenphone (@friederbluemle)에서 충돌을 해결 하도록 도와주었습니다
Lukasz Wiktor

103
<style name="TextAppearance.App.TextInputLayout" parent="@android:style/TextAppearance">
    <item name="android:textColor">@color/red</item>
    <item name="android:textSize">14sp</item>
</style>

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textColorHint="@color/gray"  //support 23.0.0
    app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout" >

    <android.support.v7.widget.AppCompatEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/hint" />
</android.support.design.widget.TextInputLayout>

16
AppCompatEditText를 사용해야하는 잘못된 결과를 제외하고는 허용 된 답변과 동일합니다. AppCompatActivity는 EditText 인스턴스에 대해 AppCompatEditText를 자동으로 사용하므로 특별히 사용할 필요는 없습니다.
Niall

4
"<style name"바로 위의 첫 번째 코드 줄은 철자가 틀립니다. "... TextAppearence ..."는 "... TextAppearance ..."이어야한다고 생각합니다.
AJW

android:textColorHint="@color/gray" //support 23.0.0내 힌트 텍스트 색상을 표시했습니다 (내가 설정 한 힌트 텍스트 색상에 관계없이 힌트 텍스트 색상은 기본적으로 검은 색이었습니다. 배경이 검은 색이면 텍스트가 완전히 숨겨져 있습니다
Rajaraman

70

답을 찾았습니다. android.support.design:hintTextAppearance속성을 사용하여 자신의 플로팅 레이블 모양을 설정하십시오.

예:

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    app:hintTextAppearance="@style/TextAppearance.AppCompat">

    <EditText
        android:id="@+id/password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/prompt_password"/>
</android.support.design.widget.TextInputLayout>

좋은 부드러운 애니메이션. 감사합니다
Joaquin Iurchuk

나는 얻는다 Namespace 'android.support.design' not bound. 어떤 제안?
Sunkas

@Sunkas compile 'com.android.support:design:23.1.1'앱 gradle 파일에 추가
Ahmed Mostafa

24

android:theme="@style/TextInputLayoutTheme"플로팅 레이블 색상을 변경하는 데 사용할 필요는 없습니다 . 레이블로 사용되는 작은 TextView의 전체 테마에 영향을 미치기 때문입니다. 대신 다음을 사용할 수 있습니다 app:hintTextAppearance="@style/TextInputLayout.HintText".

<style name="TextInputLayout.HintText">
  <item name="android:textColor">?attr/colorPrimary</item>
  <item name="android:textSize">@dimen/text_tiny_size</item>
  ...
</style>

솔루션이 작동하는지 알려주세요 :-)


22

플로팅 레이블 텍스트 색상을 어떻게 변경합니까?

으로 재료 구성 요소 라이브러리 당신은 사용자 정의 할 수 있습니다 TextInputLayout(이것은 버전 1.1.0이 필요)를 사용하여 힌트 텍스트 색상을

  • 레이아웃에서 :

    • app:hintTextColor attribute : 레이블이 접 히고 텍스트 필드가 활성화 된 경우 레이블의 색상
    • android:textColorHint 속성 : 다른 모든 텍스트 필드 상태의 레이블 색상 (휴식 및 비활성화 등)
<com.google.android.material.textfield.TextInputLayout
     app:hintTextColor="@color/mycolor"
     android:textColorHint="@color/text_input_hint_selector"
     .../>
<style name="MyFilledBox" parent="Widget.MaterialComponents.TextInputLayout.FilledBox">
    <item name="hintTextColor">@color/mycolor</item>
    <item name="android:textColorHint">@color/text_input_hint_selector</item>
</style>

여기에 이미지 설명을 입력하십시오여기에 이미지 설명을 입력하십시오

에 대한 기본 선택기 android:textColorHint는 다음과 같습니다.

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:alpha="0.38" android:color="?attr/colorOnSurface" android:state_enabled="false"/>
  <item android:alpha="0.6" android:color="?attr/colorOnSurface"/>
</selector>


4

자, 저는이 답변이 매우 도움이되고 기여한 모든 사람들에게 감사한다는 것을 알았습니다. 그래도 뭔가를 추가하십시오. 받아 들인 대답은 실제로 정답입니다 ...하지만 ... 내 경우에는 EditText위젯 아래에 오류 메시지를 구현하려고 했는데이 app:errorEnabled="true"한 줄로 인해 인생이 어려워졌습니다. 이 옵션은에 android.support.design.widget.TextInputLayout의해 정의 된 다른 텍스트 색상을 가진 선택한 테마를 재정의하는 것 같습니다 android:textColorPrimary.

결국 나는 EditText위젯에 직접 텍스트 색상을 적용했습니다 . 내 코드는 다음과 같습니다

styles.xml

<item name="colorPrimary">@color/my_yellow</item>
<item name="colorPrimaryDark">@color/my_yellow_dark</item>
<item name="colorAccent">@color/my_yellow_dark</item>
<item name="android:textColorPrimary">@android:color/white</item>
<item name="android:textColorSecondary">@color/dark_gray</item>
<item name="android:windowBackground">@color/light_gray</item>
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:textColorHint">@color/dark_gray</item>
<item name="android:colorControlNormal">@android:color/black</item>
<item name="android:colorControlActivated">@android:color/white</item>

그리고 내 위젯 :

<android.support.design.widget.TextInputLayout
        android:id="@+id/log_in_layout_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:errorEnabled="true">

        <EditText
            android:id="@+id/log_in_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:textColor="@android:color/black"
            android:ems="10"
            android:hint="@string/log_in_name"
            android:inputType="textPersonName" />
</android.support.design.widget.TextInputLayout>

이제 textColorPrimary흰색 대신 검은 색 텍스트가 표시됩니다 .


3

TextInputLayout의 스타일 테마를 만들고 악센트 색상 만 변경하는 것이 좋습니다. 부모를 앱 기반 테마로 설정하십시오.

 <style name="MyTextInputLayout" parent="MyAppThemeBase">
     <item name="colorAccent">@color/colorPrimary</item>
 </style>

 <android.support.design.widget.TextInputLayout
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:theme="@style/MyTextInputLayout">

2

최신 버전의 지원 라이브러리 (23.0.0+)에서는 TextInputLayout부동 레이블 색상을 편집하기 위해 XML에서 다음 속성을 사용합니다.android:textColorHint="@color/white"


2

Brahmam Yamani 답변 대신 Widget.Design.TextInputLayout을 부모로 사용하는 것을 선호합니다. 이렇게하면 모든 항목을 덮어 쓰지 않아도 모든 필수 항목이 표시됩니다. Yamanis 답변에서 setErrorEnabled (true)가 호출되면 앱이 해결할 수없는 리소스와 충돌합니다.

스타일을 다음과 같이 변경하십시오.

<style name="TextLabel" parent="Widget.Design.TextInputLayout">
    <!-- Hint color and label color in FALSE state -->
    <item name="android:textColorHint">@color/Color Name</item> 
    <item name="android:textSize">20sp</item>
    <!-- Label color in TRUE state and bar color FALSE and TRUE State -->
    <item name="colorAccent">@color/Color Name</item>
    <item name="colorControlNormal">@color/Color Name</item>
    <item name="colorControlActivated">@color/Color Name</item>
 </style>

1
EditText.setError ()를 사용하면 안드로이드 4.3, 7, 오류없이 잘 작동
Saul_programa

2

제 경우에는 app:hintTextAppearance="@color/colorPrimaryDark"TextInputLayout 위젯에 "" 를 추가했습니다 .


작동하지 않습니다. error: '#FFFFFF' is incompatible with attribute hintTextAppearance
Taslim Oseni

1

힌트 색상을 변경하고 밑줄 색상을 편집하려면 : colorControlActivated

문자 카운터 색상을 변경하려면 : textColorSecondary

오류 메시지 색상을 변경하려면 : colorControlNormal

비밀번호 표시 버튼 색조를 변경하려면 : colorForeground

TextInputLayout에 대한 자세한 내용은 http://www.zoftino.com/android-textinputlayout-tutorial을 참조하십시오.

<style name="MyAppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorControlActivated">#e91e63</item>
    <item name="android:colorForeground">#33691e</item>
    <item name="colorControlNormal">#f57f17</item>
    <item name="android:textColorSecondary">#673ab7</item>
</style>

1

프로그래밍 방식으로 다음을 사용할 수 있습니다.

/* Here you get int representation of an HTML color resources */
int yourColorWhenEnabled = ContextCompat.getColor(getContext(), R.color.your_color_enabled);
int yourColorWhenDisabled = ContextCompat.getColor(getContext(), R.color.your_color_disabled);

/* Here you get matrix of states, I suppose it is a matrix because using a matrix you can set the same color (you have an array of colors) for different states in the same array */
int[][] states = new int[][]{new int[]{android.R.attr.state_enabled}, new int[]{-android.R.attr.state_enabled}};

/* You pass a ColorStateList instance to "setDefaultHintTextColor" method, remember that you have a matrix for the states of the view and an array for the colors. So the color in position "colors[0x0]" will be used for every states inside the array in the same position inside the matrix "states", so in the array "states[0x0]". So you have "colors[pos] -> states[pos]", or "colors[pos] -> color used for every states inside the array of view states -> states[pos] */
myTextInputLayout.setDefaultHintTextColor(new ColorStateList(states, new int[]{yourColorWhenEnabled, yourColorWhenDisabled})

설명 :

색상 리소스에서 안드로이드 색상 값을 가져옵니다 (Android에서 사용되는 RGB 색상을 표시하는 방법). ColorEnabled를 작성했지만 실제로이 답변에 대한 ColorHintExpanded & ColorViewCollapsed이어야합니다. 어쨌든 이것은 "TextInputLayout"보기의 힌트가 확장 또는 축소 상태 일 때 표시되는 색상입니다. 뷰의 "setDefaultHintTextColor"함수에서 다음 배열을 사용하여 설정합니다. 참조 : TextInputLayout에 대한 참조-이 페이지에서 자세한 정보를 보려면 "setDefaultHintTextColor"메소드를 검색하십시오.

위의 문서를 보면 함수가 ColorStateList를 사용하여 Expanded & Collapsed 힌트의 색상을 설정한다는 것을 알 수 있습니다.

ColorStateList 문서

ColorStateList를 만들려면 먼저 state_enabled & state_disabled 인 원하는 상태로 행렬을 만들었습니다. 그냥 테스트 만하세요]). 그런 다음 ColorStateList의 생성자에 색상 리소스의 int 값이있는 배열을 전달합니다.이 색상은 상태 행렬과 일치합니다 (색상 배열의 모든 요소는 동일한 위치의 상태 행렬의 각 배열에 해당합니다). 따라서 색상 배열의 첫 번째 요소는 상태 행렬의 첫 번째 배열에있는 모든 상태의 색상으로 사용됩니다 (이 경우 배열에는 TextInputLayut에 대해 활성화 된 상태 = 힌트 확장 상태가 1 개만 있음). 마지막으로 상태에는 양수 / 음수 값이 있으며 양수 값만 있습니다.

이것이 도움이 되길 바랍니다. 안녕 좋은 코딩 (:


설명? 이것들은 단지 2 가지 방법입니다 : / 어쨌든 나는 빨리 추가합니다.
Z3R0

많은 텍스트를 가진 단지 네 줄-단지 그들 뒤에 개념을 설명하고 모두 공감대를 떠날 좋은 이유가 있습니다 :)
Nico Haase

1
;) 그것이 옳고 도움이 되길 바랍니다. 좋은 코딩 되세요 : D
Z3R0

0

여기서 색을 바꿔야합니다

<style name="Base.Theme.DesignDemo" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="colorPrimary">#673AB7</item>
        <item name="colorPrimaryDark">#512DA8</item>
        <item name="colorAccent">#FF4081</item>
        <item name="android:windowBackground">@color/window_background</item>
    </style>

0

이제 간단하게 사용 colorAccent하고 colorPrimary완벽하게 작동합니다.


4
이것은 질문에 대한 답변을 제공하지 않습니다. 저자에게 비평을하거나 설명을 요청하려면 게시물 아래에 의견을 남겨주십시오.
Swati

2
@Swati 이것은 질문에 대한 답변입니다. 나는 그에게 colorAccent와 colorPrimary를 사용하라고 말하고있다.
Kyle Horkley

6
글쎄, 그것은 더 많은 의견입니다. 샘플 코드를 추가하면 문제가있을 수 있습니다.
수피

실제로 TextInputLayout은 정확하게 colorPrimary힌트와 결론의 초점을 맞춘 색상을 설정했습니다.
Kirill Starostin

0

나는 문제를 해결한다. 레이아웃입니다 :

 <android.support.design.widget.TextInputLayout
           android:id="@+id/til_username"
           android:layout_width="match_parent"
           android:layout_height="wrap_content"
           android:hint="@string/username"
           >

           <android.support.v7.widget.AppCompatEditText android:id="@+id/et_username"
               android:layout_width="match_parent"
               android:layout_height="wrap_content"
               android:singleLine="true"
               />
       </android.support.design.widget.TextInputLayout>

이것은 스타일입니다 :

<style name="AppBaseTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!--
            Theme customizations available in newer API levels can go in
            res/values-vXX/styles.xml, while customizations related to
            backward-compatibility can go here.
        -->
    </style>
<!-- Application theme. -->


 <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
        <item name="colorAccent">@color/pink</item>
        <item name="colorControlNormal">@color/purple</item>
        <item name="colorControlActivated">@color/yellow</item>
    </style>

응용 프로그램에서 테마를 사용해야합니다.

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
</application>

0

초점을 맞출 때 텍스트 레이블의 색상을 변경합니다. 즉, 입력하십시오. 당신은 지정을 추가해야합니다

<item name="android:textColorPrimary">@color/yourcolorhere</item>

참고 사항 : 이러한 모든 구현을 기본 테마에 추가해야합니다.


0

저를 위해 일하고 있습니다 ..... TextInputLayout에 힌트 색상 추가

    <android.support.design.widget.TextInputLayout
        android:textColorHint="#ffffff"
        android:id="@+id/input_layout_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <EditText
            android:id="@+id/edtTextPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="15dp"
            android:hint="Password"
            android:inputType="textPassword"
            android:singleLine="true"
            />
    </android.support.design.widget.TextInputLayout>

0

android.support.design.widget.TextInputLayout에서 android : textColorHint를 사용해 보았습니다.

        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textColorHint="@color/colorAccent">

            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Hello"
                android:imeActionLabel="Hello"
                android:imeOptions="actionUnspecified"
                android:maxLines="1"
                android:singleLine="true"/>

        </android.support.design.widget.TextInputLayout>

0
  <style name="AppTheme2" parent="AppTheme">
    <!-- Customize your theme here. -->
    <item name="colorControlNormal">#fff</item>
    <item name="colorControlActivated">#fff</item></style>    

이것을 스타일에 추가하고 TextInputLayout Theam을 App2로 설정하면 작동합니다.)


0
<com.google.android.material.textfield.TextInputLayout
    android:hint="Hint"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/TextInputLayoutHint">

    <androidx.appcompat.widget.AppCompatEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="text"
        android:maxLines="1"
        android:paddingTop="@dimen/_5sdp"
        android:paddingBottom="@dimen/_5sdp"
        android:textColor="#000000"
        android:textColorHint="#959aa6" />

</com.google.android.material.textfield.TextInputLayout>

입술 / 값 /styles.xml

<style name="TextInputLayoutHint" parent="">
    <item name="android:textColorHint">#545454</item>
    <item name="colorControlActivated">#2dbc99</item>
    <item name="android:textSize">11sp</item>
</style>

0

사용할 수 app:hintTextColor당신이 사용하는 경우 com.google.android.material.textfield.TextInputLayout,이 시도

 <com.google.android.material.textfield.TextInputLayout
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:hint="@string/app_name" 
     app:hintTextColor="@android:color/white">                   

     <com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />
 </com.google.android.material.textfield.TextInputLayout>

0

정상적인 상태에서 작동하는 아래 코드를 사용해보십시오.

<android.support.design.widget.TextInputLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:theme="@style/TextLabel">

 <android.support.v7.widget.AppCompatEditText
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:hint="Hiiiii"
     android:id="@+id/edit_id"/>


</android.support.design.widget.TextInputLayout>

스타일 폴더 텍스트 레이블 코드

 <style name="TextLabel" parent="TextAppearance.AppCompat">
<!-- Hint color and label color in FALSE state -->
<item name="android:textColorHint">@color/Color Name</item> 
<item name="android:textSize">20sp</item>
<!-- Label color in TRUE state and bar color FALSE and TRUE State -->
<item name="colorAccent">@color/Color Name</item>
<item name="colorControlNormal">@color/Color Name</item>
<item name="colorControlActivated">@color/Color Name</item>
 </style>

0

설명서에서 :

힌트는 EditText 대신 TextInputLayout에 설정해야합니다. XML의 하위 EditText에 힌트가 지정된 경우 TextInputLayout이 여전히 올바르게 작동 할 수 있습니다. TextInputLayout은 EditText의 힌트를 플로팅 레이블로 사용합니다. 그러나 나중에 힌트를 수정하기위한 호출은 TextInputLayout의 힌트를 업데이트하지 않습니다. 의도하지 않은 동작을 피하려면 EditText 대신 TextInputLayout에서 setHint (CharSequence) 및 getHint ()를 호출하십시오.

그래서 나는 켜져 있지 않고 설정 android:hint하고 작동했습니다.app:hintTextColorTextInputLayoutTextInputEditText


0

추가해야하므로 colorControlNormal, colorControlActivated, colorControlHighLight기본 응용 프로그램 테마 항목 :

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">

        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>

        <item name="colorControlActivated">@color/yellow_bright</item>
        <item name="colorControlNormal">@color/yellow_black</item>

    </style>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.