TextInputLayout के फ़्लोटिंग लेबल रंग को कैसे बदलें


210

TextInputLayoutGoogle द्वारा जारी नए के संदर्भ में , मैं फ्लोटिंग लेबल टेक्स्ट का रंग कैसे बदलूं?

स्थापना colorControlNormal, colorControlActivated, colorControlHighLightशैलियों में मदद नहीं करता है।

मेरे पास अब यही है:

मेरे पास अब यही है


8
आप लाइन का रंग लाल में कैसे बदलें?
व्लाद

6
@ व्लाद १६१ रंगअकांत
काइल हॉर्क्ले

@ Vlad161 समझा सकता है कि आप कहां सेट होंगे colorAccent? मैंने कस्टम शैली colorAccentको काले रंग में बदल दिया और रेखा अभी भी प्रतिबिंबित करेगी कि मेरे पास colorControlNormalमुख्य शैली में क्या है।
इलियटम


निम्नलिखित लिंक की जाँच करें। यह अलग रंग को संकेत और रंग को रेखांकित करने के लिए निर्धारित करता है: 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: रंग में परिवर्तित नहीं किया जा सकता है: टाइप करें = 0x2 एपी 16 में या नीचे

उपाय

अपडेट करें:

क्या आप सामग्री अवयव पुस्तकालय का उपयोग कर रहे हैं

आप अपने मुख्य विषय के नीचे की पंक्तियों को जोड़ सकते हैं

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

या आप नोरामल राज्य और सक्रिय राज्य में अलग-अलग रंग चाहते हैं और कोड के नीचे अनुकूलन के साथ

<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 में टेक्स्टिनपुटलेउटआउट में शैली सेट कर सकते हैं

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

6
वाह, मैं इस पर लगभग एक सप्ताह से काम कर रहा हूं - मैं कई बार इस सवाल पर लौट आया हूं, आपने अभी तक मेरे द्वारा पूछे गए सभी सवालों के जवाब दिए हैं।
इलियटम

40
जब आप TextInputLayout पर त्रुटि संदेश सेट करते हैं या EditText दृश्य को रेखांकित करते हैं तो ऐप चकित हो जाता है:android.view.InflateException: Error inflating class TextView
Arvis

18
आसुस ज़ेनफोन (और संभवतः अन्य उपकरणों) पर दुर्घटनाओं में परिणाम android:themeपर इस शैली को स्थापित करते हुए सावधानीपूर्वक । TextInputLayoutInflateException
फ्राइडेरब्लुमेले

13
हाय एनजे, इसके लिए क्षमा करें, मुझे नहीं पता कि ऐसा क्यों हो रहा है, लेकिन मैंने TextAppearance.AppCompat को ThemeOverlay.AppCompat में बदल दिया है। यदि यह textinputlayout के लिए सेट त्रुटि का उपयोग करते हुए भी ठीक काम कर रहा है
Yamani

11
ThemeOverlay.AppCompat.Lightमेरे ASUS ज़ेनफोन (@friederbluemle) पर दुर्घटना को हल करने में मदद करने के लिए माता-पिता की स्थापना
लुकाज़

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 का उपयोग करेगा, आपको विशेष रूप से इसका उपयोग करने की आवश्यकता नहीं है।
निल

4
"<स्टाइल नाम" के ठीक बाद के ऊपर कोड की पहली पंक्ति में एक गलत वर्तनी है। मेरा मानना है कि "... TextAppearence ..." होना चाहिए "... TextAppearance ..."
AJW

android:textColorHint="@color/gray" //support 23.0.0मेरे संकेत पाठ का रंग दिखाई दिया (संकेत पाठ का रंग मेरे द्वारा लिखे गए संकेत पाठ रंग के डिफ़ॉल्ट होने के बावजूद काला था और यदि पृष्ठभूमि काला है तो पाठ पूर्ण रूप से छिपा हुआ है
राजारामण

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>

अच्छा चिकनी एनीमेशन। धन्यवाद
जोकिन Iurchuk

मुझे मिलता है Namespace 'android.support.design' not bound। कोई सुझाव?
सनकस

@ सूंकस compile 'com.android.support:design:23.1.1'आपकी ऐप ग्रेड फ़ाइल में जोड़ते हैं
अहमद

24

आपको android:theme="@style/TextInputLayoutTheme"फ्लोटिंग लेबल रंग बदलने के लिए उपयोग करने की आवश्यकता नहीं है , क्योंकि यह लेबल के रूप में उपयोग किए जाने वाले छोटे टेक्स्ट व्यू के लिए पूरे विषय को प्रभावित करने वाला है। इसके बजाय, आप इसका उपयोग कर सकते हैं 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 विशेषता: लेबल का रंग जब ढह जाता है और पाठ क्षेत्र सक्रिय होता है
    • 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>

github.com/material-compenders/material-compenders-android/blob/… लिंक काम नहीं कर रहा है
जयंत

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

ब्रह्मम यमनी उत्तर के बजाय मैं विजेट का उपयोग करना पसंद करता हूं। यह सुनिश्चित करता है, कि सभी आवश्यक वस्तुएं मौजूद हैं, भले ही सभी आइटम ओवरराइट न किए गए हों। यमन के उत्तर में, ऐप अनार्य संसाधन के साथ दुर्घटनाग्रस्त हो जाएगा, अगर setErrorEnabled (सच) कहा जाता है।

बस शैली को निम्न में बदलें:

<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
एंड्रॉइड 4.3 और 7 पर अच्छी तरह से काम करता है, EditText.setError () का उपयोग करते समय कोई त्रुटि नहीं
Saul_programa

2

मेरे मामले में मैंने इसे app:hintTextAppearance="@color/colorPrimaryDark"अपने TextInputLayout विजेट में जोड़ा है ।


यह काम नहीं करता। error: '#FFFFFF' is incompatible with attribute hintTextAppearance
तस्लीम ओसेनी

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})

explaination:

एक रंग संसाधन (Android द्वारा उपयोग किए जाने वाले आरजीबी रंगों को पेश करने का एक तरीका) से अंतर रंग मान प्राप्त करें। मैंने ColorEnabled लिखा, लेकिन वास्तव में यह होना चाहिए, इस उत्तर के लिए, ColorHintExpanded और ColorViewCollapsed। वैसे भी यह वह रंग है जिसे आप देखेंगे जब "TextInputLayout" का संकेत विस्तारित या टूटी हुई स्थिति पर है; आप इसे व्यू के "setDefaultHintTextColor" फ़ंक्शन पर अगली सरणी का उपयोग करके सेट करेंगे। संदर्भ: TextInputLayout के लिए संदर्भ - इस पृष्ठ में अधिक जानकारी के लिए "setDefaultHintTextColor" विधि खोजें।

ऊपर दिए गए डॉक्स को देखकर आप देख सकते हैं कि फ़ंक्शंस ने ColorStateList का उपयोग करके विस्तारित और टूटे हुए संकेत के लिए रंग सेट किए हैं।

ColorStateList डॉक्स

ColorStateList बनाने के लिए मैंने पहली बार अपनी इच्छा वाले राज्यों के साथ एक मैट्रिक्स बनाया था, मेरे मामले में state_enabled & state_disabled (जिसका है, TextInputLayout में, Hint विस्तारित और संकेत के बराबर है) - मुझे याद नहीं है कि किस क्रम में योग्य है, वैसे भी मैंने पाया बस एक परीक्षण कर रहा है])। फिर मैं ColorStateList के कंस्ट्रक्टर के पास जाता हूं, जिसमें रंग संसाधनों के अंतर मूल्यों के साथ होता है, इन रंगों में राज्यों के मैट्रिक्स के साथ एक पत्राचार होता है (रंग सरणी में प्रत्येक तत्व समान स्थिति में राज्यों के मैट्रिक्स में संबंधित सरणी के अनुरूप है)। इसलिए रंगों के सरणी का पहला तत्व राज्यों की मैट्रिक्स के पहले सरणी में प्रत्येक राज्य के लिए रंग के रूप में उपयोग किया जाएगा (हमारे मामले में सरणी में केवल 1 तत्व है: सक्षम राज्य = TextInputLayut के लिए संकेत विस्तारित राज्य)। अंतिम चीजों में सकारात्मक / नकारात्मक मूल्य हैं, और आपके पास केवल सकारात्मक मूल्य हैं,

आशा है कि यह उपयोगी है। अलविदा एक अच्छा कोडिंग है:


Explaination? ये सिर्फ 2 तरीके हैं: / वैसे भी ठीक है, मैं उन्हें तेजी से जोड़ता हूं।
Z3R0

बहुत सारे पाठ के साथ सिर्फ चार पंक्तियाँ - बस उनके पीछे की अवधारणाओं को संक्षेप में समझाएं और हर किसी के पास एक उत्थान छोड़ने का एक अच्छा कारण है :)
निको हसे

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
यह प्रश्न का उत्तर प्रदान नहीं करता है। किसी लेखक से स्पष्टीकरण मांगने या उसका अनुरोध करने के लिए, उनके पोस्ट के नीचे एक टिप्पणी छोड़ दें।
स्वाति

2
@Swati यह सवाल का जवाब है। मैं उसे colorAccent और colorPrimary का उपयोग करने के लिए कह रहा हूं।
काइल हॉर्कले

6
खैर, यह एक टिप्पणी की अधिक है। यदि आप एक नमूना कोड जोड़ते हैं तो आपके पास एक बिंदु हो सकता है।
सूफियान

वास्तव में TextInputLayout ने colorPrimaryसंकेत और नीचे की रेखा के केंद्रित रंग को सेट करने के लिए विषय को बिल्कुल लिया । हालांकि वास्तव में इस उत्तर में इसे प्रदर्शित करने के लिए कुछ स्पष्टीकरण / कोड होना चाहिए था
किरिल स्ट्रॉस्टिन

0

मैं समस्या का समाधान करता हूं। यह लेआउट Layout है

 <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 का उपयोग करने की कोशिश की: android.support.design.widget.TextInputLayout में 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>    

इसे शैलियों में जोड़ें और Text2putLayout 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>

res / values ​​/ 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 के बजाय, TextHputLayout पर setHint (CharSequence) और getHint () कॉल करें।

इसलिए मैं सेट android:hintऔर app:hintTextColorपर TextInputLayout, पर नहीं TextInputEditTextहै और यह काम किया।


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>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.