标签: android-textinputlayout

如何更改textinputlayout的提示文本颜色

嗨,我在我的应用程序中使用TextInputLayout.我想将提示文本颜色和浮动标签颜色(聚焦和未聚焦)设置为白色.我试过下面的代码.

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

<android.support.v7.widget.AppCompatEditText
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:hint="Hiiiii"
android:id="@+id/edit_id">
 </android.support.v7.widget.AppCompatEditText>
</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>
Run Code Online (Sandbox Code Playgroud)

它适用于棒棒糖,但不适用于较低版本.如何在较低版本中实现相同的效果?

android colors android-textinputlayout

6
推荐指数
1
解决办法
4941
查看次数

SetError在TextInputLayout中生成具有自定义样式的异常

我使用自定义样式在TextInputLayout中使用Edittext,以便我可以更改提示颜色.如果我在不设置样式的情况下使用EditText,则该setError方法可以正常工作,但是在我的样式集中,抛出了下一个异常:

java.lang.UnsupportedOperationException: Failed to resolve attribute at index 24: TypedValue{t=0x3/d=0x2b5 "res/color/secondary_text_material_dark.xml" a=1 r=0x1060166}
                                                                             at android.content.res.TypedArray.getColor(TypedArray.java:447)
                                                                             at android.widget.TextView.<init>(TextView.java:745)
                                                                             at android.widget.TextView.<init>(TextView.java:678)
                                                                             at android.widget.TextView.<init>(TextView.java:674)
                                                                             at android.widget.TextView.<init>(TextView.java:670)
                                                                             at android.support.design.widget.TextInputLayout.setErrorEnabled(TextInputLayout.java:380)
                                                                             at android.support.design.widget.TextInputLayout.setError(TextInputLayout.java:425)
                                                                             at com.wallakoala.wallakoala.Activities.SignUpUI.validateEmail(SignUpUI.java:50)
                                                                             at com.wallakoala.wallakoala.Activities.SignUpUI.access$100(SignUpUI.java:21)
                                                                             at com.wallakoala.wallakoala.Activities.SignUpUI$MyTextWatcher.afterTextChanged(SignUpUI.java:103)
                                                                             at android.widget.TextView.sendAfterTextChanged(TextView.java:8017)
                                                                             at android.widget.TextView$ChangeWatcher.afterTextChanged(TextView.java:10182)
                                                                             at android.text.SpannableStringBuilder.sendAfterTextChanged(SpannableStringBuilder.java:1043)
                                                                             at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:560)
                                                                             at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:492)
                                                                             at android.text.SpannableStringBuilder.replace(SpannableStringBuilder.java:34)
                                                                             at android.view.inputmethod.BaseInputConnection.replaceText(BaseInputConnection.java:685)
                                                                             at android.view.inputmethod.BaseInputConnection.setComposingText(BaseInputConnection.java:445)
                                                                             at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:340)
                                                                             at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:78)
                                                                             at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                             at android.os.Looper.loop(Looper.java:224)
                                                                             at android.app.ActivityThread.main(ActivityThread.java:5526)
                                                                             at java.lang.reflect.Method.invoke(Native Method)
                                                                             at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                             at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Run Code Online (Sandbox Code Playgroud)

这是EditText的XML

<android.support.design.widget.TextInputLayout
        android:id="@+id/email_input_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginRight="34dp"
        android:layout_marginLeft="34dp"
        android:layout_marginTop="12dp"
        android:theme="@style/TextLabel">

        <EditText
            android:id="@+id/email_edittext"
            android:inputType="textEmailAddress" …
Run Code Online (Sandbox Code Playgroud)

android android-edittext android-styles android-textinputlayout

6
推荐指数
1
解决办法
924
查看次数

以编程方式设置TextInputLayout的样式

有没有一种方法可以通过编程方式自定义这些TextInputLayout属性:

  • textColorHint
  • colorAccent
  • colorControlNormal
  • colorControlActivated
  • textSelectHandle

我知道如何使用主题属性设置样式,但是我正在研究的项目会动态加载颜色信息,据我所知,无法在运行时更改主题/样式值。

android android-theme android-styles android-textinputlayout

6
推荐指数
1
解决办法
2731
查看次数

TextInputLayout 在 ConstraintLayout 中无法正常工作

我是 ConstraintLayout 的新手。我试图设置 TextInputLayout 宽度以匹配父级,但它总是跳转到 365dp。而且我无法在另一个底部对齐 TextInputLayout。请帮我解决这个问题。 截屏

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayoutxmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="dcastalia.com.cook4me.LoginActivity"
tools:layout_editor_absoluteY="81dp"
tools:layout_editor_absoluteX="0dp">


<android.support.design.widget.TextInputLayout
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    app:layout_constraintTop_toTopOf="parent"
    android:layout_marginTop="39dp"
    android:layout_marginLeft="32dp"
    app:layout_constraintLeft_toLeftOf="parent"
    android:layout_marginRight="32dp"
    app:layout_constraintRight_toRightOf="parent"
    android:layout_marginStart="32dp"
    android:layout_marginEnd="32dp"
    app:layout_constraintHorizontal_bias="0.0"
    android:id="@+id/textInputLayout">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="hint" />
</android.support.design.widget.TextInputLayout>

<android.support.design.widget.TextInputLayout
    android:layout_width="395dp"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    app:layout_constraintTop_toBottomOf="@+id/textInputLayout"
    app:layout_constraintRight_toRightOf="@+id/textInputLayout">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="hint" />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

android android-textinputlayout android-constraintlayout

6
推荐指数
1
解决办法
3636
查看次数

imeOption ="actionNext"在TextInputLayout中不起作用.

我正在使用材料设计中的浮动提示.我希望将焦点从一个EditText转移到下一个,所以我在所有editTexts中放置了imeOptions ="actionNext",在最后一个EditText中放了imeOptions ="actionDone".但重点不是转移到下一个EditText. 下面是我的xml的片段.

 <android.support.design.widget.TextInputLayout
                        android:id="@+id/streetWrapper"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:theme="@style/TextInputStyle"
                        >

                        <EditText

                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:hint="Street/Locality *"
                            android:imeOptions="actionNext"
                            android:maxLines="1"

                            />

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

                    <android.support.design.widget.TextInputLayout
                        android:id="@+id/flatWrapper"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="@dimen/_10sdp"
                        android:theme="@style/TextInputStyle">

                        <EditText

                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:hint="Building Name / Flat Number*"
                            android:imeOptions="actionNext"
                            android:maxLines="1"
                            />

                    </android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

xml android android-layout android-textinputlayout

6
推荐指数
2
解决办法
3564
查看次数

TextInputLayout - 如果EditText不为空且未聚焦,则更改浮动标签提示颜色

Res状态 - 提示颜色黑色,很好
在此输入图像描述

聚焦状态,空 - 暗示颜色灰色,好
在此输入图像描述

聚焦状态,不是空的 - 暗示颜色灰色,好
在此输入图像描述

Res状态,不是空的 - 提示颜色黑色,不好,应该是灰色的
在此输入图像描述

如果editText不为空且没有聚焦,如何更改提示颜色?

这是我目前的代码:

<android.support.design.widget.TextInputLayout
    android:id="@+id/email"
    style="@style/AuthInput"
    android:layout_marginTop="32dp"
    android:hint="@string/hint_email"
    android:inputType="textEmailAddress"
    android:theme="@style/AuthInput"
    app:hintTextAppearance="@style/TextAppearance.App.TextInputLayout">

    <EditText
        android:id="@+id/edit_email"
        style="@style/AuthEditText"
        android:inputType="textEmailAddress" />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

和风格:

<style name="AuthInput">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textColorHint">@color/black</item>
    <item name="android:paddingLeft">0dp</item>
</style>

<style name="TextAppearance.App.TextInputLayout" parent="@android:style/TextAppearance">
    <item name="android:textColor">@color/inputHintActive</item>
</style>
Run Code Online (Sandbox Code Playgroud)

android android-textinputlayout

6
推荐指数
1
解决办法
2307
查看次数

更改TextInputEditText提示颜色

我想更改TextInputEditText提示的文本颜色.似乎无论我改变什么,颜色总是主应用主题的颜色.

            <android.support.design.widget.TextInputLayout
                android:id="@+id/enter_template_name_edit_text_input_layout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:textColorHint="@color/warm_grey">

                <android.support.design.widget.TextInputEditText
                    android:id="@+id/template_name_text_input_edit_text"
                    style="@style/EditTextBaseStyle"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="start"
                    android:hint="@string/add_nitrogen_template_name_label"
                    android:imeOptions="actionNext"
                    android:inputType="textCapWords|textNoSuggestions"
                    android:maxLines="1"
                    android:paddingBottom="@dimen/md_content_padding_bottom"
                    android:textAlignment="textStart"
                    android:textColorHint="@color/warm_grey"
                    android:textSize="32sp" />
Run Code Online (Sandbox Code Playgroud)

和基本风格

<style name="EditTextBaseStyle" parent="Widget.AppCompat.EditText">
    <item name="android:textViewStyle">@style/TextViewStyle</item>
    <item name="android:textColor">@color/middle_black</item>
    <item name="android:textStyle">normal</item>
    <item name="android:textSize">16sp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

我试过添加

android:textColorHint="@color/warm_grey"
Run Code Online (Sandbox Code Playgroud)

对基本风格以及我的AppTheme而言并没有帮助.

这是我的AppTheme

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="colorPrimary">@color/primary</item>
    <item name="colorPrimaryDark">@color/primary_dark</item>
    <item name="colorAccent">@color/primary</item>
    <item name="android:textColorHint">@color/primary_text</item>
    <item name="android:windowBackground">@null</item>
    <item name="android:windowSoftInputMode">stateHidden|adjustPan</item>
</style>
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?

谢谢,奥特曼

编辑:该提示是当字段不正确的颜色具有焦点.当字段获得焦点时,提示移动到字段上方并显示不正确的颜色.

android android-layout android-textinputlayout

6
推荐指数
3
解决办法
6723
查看次数

Android TextInputLayout提示与EditText提示重叠

我面临一个奇怪的问题,我有一个InputTextLayout和一个EditText,并且我正在尝试实现类似的功能(如下图所示)(来自材料设计指南的图像:https : //material.io/guidelines/components /text-fields.html#text-fields-layout),其中有两个单独的提示。我这样做是通过将android:hint添加到两个布局中。这可以正常工作,但是当焦点移开该位置时,“标签”将向下移动并与“占位符”文本重叠。(仅当用户未提供任何输入且编辑文本为空时,两个提示才重叠)。关于如何解决此问题的任何指示?

作为一项要求,我需要两个提示都存在,并且“标签”不应向下移至焦点更改。两种提示都应保持在原位

 <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Label">

        <android.support.v7.widget.AppCompatEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Placeholder"
            android:inputType="textCapWords"
            />

    </android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

android android-layout android-edittext android-textinputlayout textinputlayout

6
推荐指数
3
解决办法
4353
查看次数

自定义文本输入布局

我想应用边框,TextInputLayout如图所示.

现在我已经实现了这样的.

在此输入图像描述

但是,我想如图所示跟随(即标签放在边框内).

在此输入图像描述

我实现的代码EditText如下.

<customviews.MyEditText
             android:id="@+id/email"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:background="@drawable/edittext_border_background"
             android:layout_marginEnd="30dp"
             android:layout_marginStart="30dp"
             android:layout_marginTop="45dp"
             android:gravity="start"
             android:hint="@string/hint_username"
             android:imeOptions="actionNext|actionDone"
             android:inputType="textEmailAddress|text"
             android:padding="10dp"
             android:textColor="@color/primary_text"
             android:textColorHint="@color/secondary_text"
             android:textSize="16sp"
            />
Run Code Online (Sandbox Code Playgroud)

并且,对于边框我已经应用了背景editetext_border_background.xml如下

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:padding="20dp">
    <solid android:color="#FFFFFF"/>
    <corners
        android:bottomRightRadius="0dp"
        android:bottomLeftRadius="0dp"
        android:topLeftRadius="0dp"
        android:topRightRadius="0dp"/>
    <stroke 
        android:width="1dip"
        android:color="@color/primary" />

</shape>
Run Code Online (Sandbox Code Playgroud)

当我尝试应用边框时,TextInputLayout它不会给出预期的输出.

在此输入图像描述

谁能帮我??

android android-textinputlayout android-textinputedittext

6
推荐指数
2
解决办法
3070
查看次数

Android EditText错误消息弹出文本未显示

我在我的应用程序中遇到问题,其中EditTexts上的错误弹出显示但文本不可见.它看起来像这样:

EditText错误消息

EditText我的应用程序中的所有s都会发生这种情况.这是一个布局XML的示例

布局:

<?xml version="1.0" encoding="utf-8"?>

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/gradient"
    android:fitsSystemWindows="true"
    tools:context=".ui.onboarding.profile.OnboardingUserProfileActivity">
    <ImageView
        android:id="@+id/imageView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scaleType="fitXY"
        app:srcCompat="@drawable/shapes_background" />

    <ProgressBar
        android:id="@+id/login_progress"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:visibility="gone" />

    <ScrollView
        android:id="@+id/form"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginBottom="20dp">

        <LinearLayout
            android:id="@+id/linearLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:layout_marginBottom="80dp"
            android:orientation="vertical">

            <android.support.constraint.ConstraintLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginTop="40dp"
                android:layout_marginBottom="20dp">

                <ImageView
                    android:id="@+id/profileImageView"
                    android:layout_width="160dp"
                    android:layout_height="160dp"
                    android:scaleType="fitXY"
                    android:src="@drawable/user_profile_placeholder"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"/>


                <android.support.design.widget.FloatingActionButton
                    android:id="@+id/cameraImageButton"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="bottom|end"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintRight_toRightOf="parent"
                    app:srcCompat="@android:drawable/ic_menu_camera" />
            </android.support.constraint.ConstraintLayout>

            <android.support.design.widget.TextInputLayout
                android:id="@+id/firstnameTvLayout"
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_marginBottom="20dp"
                android:layout_weight="0.33"
                android:textColorHint="@color/colorVeryLightGray"
                android:theme="@style/AppTheme.WhiteColorAccent" …
Run Code Online (Sandbox Code Playgroud)

android android-layout kotlin android-textinputlayout android-textinputedittext

6
推荐指数
1
解决办法
1267
查看次数