嗨,我在我的应用程序中使用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)
它适用于棒棒糖,但不适用于较低版本.如何在较低版本中实现相同的效果?
我使用自定义样式在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
有没有一种方法可以通过编程方式自定义这些TextInputLayout属性:
我知道如何使用主题属性设置样式,但是我正在研究的项目会动态加载颜色信息,据我所知,无法在运行时更改主题/样式值。
android android-theme android-styles android-textinputlayout
我是 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)
我正在使用材料设计中的浮动提示.我希望将焦点从一个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) 如果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) 我想更改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)
我在这里缺少什么?
谢谢,奥特曼
编辑:该提示是当字段不正确的颜色不具有焦点.当字段获得焦点时,提示移动到字段上方并显示不正确的颜色.
我面临一个奇怪的问题,我有一个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
我想应用边框,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它不会给出预期的输出.
谁能帮我??
我在我的应用程序中遇到问题,其中EditTexts上的错误弹出显示但文本不可见.它看起来像这样:
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