标签: android-textinputlayout

如何更改Android Material TextInputLayout组件的非活动边框描边颜色

我正在尝试设置 TextInputLayout 未聚焦的边框描边颜色。同样,有太多的问题和答案,我已经尝试了所有的问题。就像创建样式并用作主题一样,创建颜色选择器并应用它,也可以直接应用 app:boxStrokeColor 和颜色选择器。但这些可用的解决方案中的任何一个都不太幸运。

不确定,我哪里做错了或者我仍然缺少什么。我将我的代码推送到github 的测试项目,以便更好地了解我的整个设置。以下是一些用于快速查看的示例代码:

Activity_main.xml(ConstraintLayout 内的 TextInputLayout)

<com.google.android.material.appbar.MaterialToolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <!-- Tried this as well - app:boxStrokeColor="@color/text_input_box_stroke_color" -->
    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/emailTextInputLayout"
        android:hint="Email"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        android:theme="@style/TextInputLayoutStyle"
        android:layout_marginHorizontal="24dp"
        app:layout_constraintTop_toBottomOf="@id/toolbar"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent">

        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/emailTextInput"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:importantForAutofill="no"
            android:inputType="textEmailAddress" />

    </com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

样式.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="TextInputLayoutStyle" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense">
        <item name="boxStrokeColor">#FF00CC</item>
        <item name="boxStrokeWidth">2dp</item>
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

text_input_box_lines_color.xml(颜色选择器)

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="@color/mtrl_textinput_focused_box_stroke_color" android:state_focused="true"/>
    <item android:color="@color/mtrl_textinput_hovered_box_stroke_color" android:state_hovered="true"/>
    <item android:color="@color/mtrl_textinput_disabled_color" android:state_enabled="false"/>
    <item android:color="@color/mtrl_textinput_default_box_stroke_color"/> …
Run Code Online (Sandbox Code Playgroud)

android android-textinputlayout android-textinputedittext material-components-android

5
推荐指数
1
解决办法
4514
查看次数

使用多行 TextField 在所选行下方显示键盘

所以我有以下布局 TextInputEditText

<com.google.android.material.textfield.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/note"
    android:layout_marginTop="@dimen/layout_margin_default"
    app:startIconDrawable="@drawable/baseline_notes_24">
    <com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textMultiLine"
        />
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

现在,当我选择在键盘内书写时,TextInputEditText键盘会自动显示在以下位置TextInputEditText编辑文本下方

现在,我想要的是,而不是在 下方显示键盘TextInputEditText,我希望显示在当前“选定”行下方的键盘,该行应如下所示: 线下1 线下2

示例视频应该是什么样子: https://jumpshare.com/v/TAO6jo1jdnRZDhYyzrkY

如何以正确的方式解决这个问题?我尝试过使用android:windowsoftinputmode,但找不到合适的属性。

我假设在显示键盘方面没有太多余地?

keyboard android android-softkeyboard android-edittext android-textinputlayout

5
推荐指数
0
解决办法
84
查看次数

提示在非焦点状态下使用TextInputLayout不可见

我正在使用TextInputLayoutAndroid设计库中的新功能,

EditText集中,一切都还好,我可以看到上面的提示EditText

在此处输入图片说明

但是当EditText失去焦点时,提示完全消失了:

在此处输入图片说明

我希望提示会返回到EditText,我还缺少什么?

下面的xml代码。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="20dp">

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

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:hint="Try me 2"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

android hint android-design-library android-textinputlayout

4
推荐指数
1
解决办法
3802
查看次数

TextInputLayout和TextView之间的额外空间

我已经将TextInputLayout用于EditText,并且在它下面有一个TextView.我看到TextInputLayout和TextView之间有一个额外的空间.我想删除那个额外的空间.使用和不使用TextInputLayout附加的图片.我已经在开发者选项中启用了边界,因此pic可能看起来令人困惑但信息丰富.

以下是布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

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

        <EditText
            android:id="@+id/editTextCurrentPassword"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_marginLeft="50dp"
            android:layout_marginRight="50dp"
            android:layout_marginTop="30dp"
            android:background="@drawable/edit_text_border_drawable"
            android:gravity="center"
            android:hint="@string/current_password"
            android:layout_gravity="bottom"
            android:inputType="textPassword"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@color/black" />
    </android.support.design.widget.TextInputLayout>

    <TextView
        android:id="@+id/textForgotPassword"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:clickable="true"
        android:text="@string/forgot_password"
        android:textSize="17sp" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

没有textInputLayout

使用TextInputLayout

android textview android-textinputlayout

4
推荐指数
1
解决办法
2146
查看次数

如何在TextInputLayout中更改提示文本大小

假设我想要更改文字大小.我在代码中这样做,它看起来像这样:

_textInputLayout.EditText.SetTextSize(Android.Util.ComplexUnitType.Dip, 40);
Run Code Online (Sandbox Code Playgroud)

当我在条目中写入文本时,它看起来像40dip文本.但是当条目为空时,提示文本看起来像16-18dip.

有没有办法改变提示文字大小?

android xamarin xamarin.forms android-textinputlayout textinputlayout

4
推荐指数
1
解决办法
4429
查看次数

将错误设置为Android M上的TextInputLayout后更改EditText背景的问题

我已将自定义背景设置为Xml文件中的EditText.验证后,我在运行时为EditText设置了不同的背景,并将错误设置为TextInputLayout.但是在Android M中,它不是设置后台资源,而是将背景颜色设置为EditText.

这是在将错误设置为TextInputLayout之前的图像

这是将错误设置为TextInputLayout后的图像

以下是我的代码: -

XML文件代码

<android.support.design.widget.TextInputLayout
android:id="@+id/input_layout_name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
app:errorTextAppearance="@style/ErrorText">

<EditText
    android:id="@+id/input_name"
    android:layout_width="fill_parent"
    android:layout_height="40dp"
    android:background="@drawable/edittext_selector"
    android:hint="@string/hint_name"
    android:imeOptions="actionNext"
    android:inputType="textEmailAddress" />

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

验证码

if (inputName.getText().toString().trim().isEmpty()) {
    inputLayoutName.setErrorEnabled(true);
    inputLayoutName.setError("Errorrroror");
    inputName.setBackgroundResource(R.drawable.edittext_red_focused);
    requestFocus(inputName);
    return false;
} else {
    inputName.setBackgroundResource(R.drawable.edittext_selector);
    inputLayoutName.setErrorEnabled(false);
}

return true;
Run Code Online (Sandbox Code Playgroud)

以下是我的错误资源文件

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid android:color="@color/sale_color" />
</shape>
</item>

<!-- main color -->
<item
android:bottom="1.0dp"
android:left="1.0dp"
android:right="1.0dp">
<shape>
<solid android:color="@android:color/white" />
</shape>
</item>

<!-- draw another block to cut-off the left and right bars --> …
Run Code Online (Sandbox Code Playgroud)

android android-edittext android-textinputlayout

4
推荐指数
1
解决办法
2850
查看次数

android.support.design.widget.TextInputLayout无法实例化

我想android.support.design.widget.TextInputLayout在我的Android应用程序中集成.我已经将jar文件android-support-design.jar从sdk 复制到了我的应用程序li​​b文件夹.我在我的xml文件中为Email EditText添加了以下代码,

 <!-- Email Label -->
        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:layout_marginBottom="8dp">
            <EditText android:id="@+id/input_email"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="textEmailAddress"
                android:hint="Email" />
        </android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

在我的layout.xml文件中添加此代码时,我收到一个错误,如,

Exception raised during rendering: com.android.layoutlib.bridge.MockView cannot be cast to android.view.ViewGroup
Exception details are logged in Window > Show View > Error Log
The following classes could not be instantiated:
- android.support.design.widget.TextInputLayout (Open Class, Show Error Log)
See the Error Log (Window > Show View) for more details.
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题......

java android android-textinputlayout

4
推荐指数
3
解决办法
2万
查看次数

更改TextInputLayout错误字体?

是否可以为EditText更改TextInputLayout错误文本字体?

我只能通过app:errorTextAppearance更改颜色或文本大小。

fonts android android-textinputlayout

4
推荐指数
1
解决办法
1605
查看次数

Android - TextInputLayout不包含TextInputEditText的提示

我有一个简单的TextInputEditText嵌套TextTnputLayout.

我试图让它与提供TIL的暗示一样长TIET.

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

    <android.support.design.widget.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:hint="This is a hint"/>

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

但问题是,它没有显示任何东西 没有

我必须将TIL宽度设置为match_parent或除了之外的任何其他宽度wrap_content.但是我希望宽度是动态的,宽度TIL跟随提示的长度.可能吗?如果是的话,怎么做?

我正在使用支持库版本26.0.2顺便说一句.

Yvette Colomb的答案很接近,TIL包装TIET但花哨的动画在那里不起作用.可能是因为如果在执行中设置了提示,动画将无法启动?

android android-textinputlayout

4
推荐指数
1
解决办法
1951
查看次数

如何更改材质TextInputLayout OutlinedBox散焦的颜色

我有OutlinedBox TextInputLayout,并且我想在editText的非聚焦模式下更改框的颜色。

我怎样才能做到这一点?

在此处输入图片说明

android material-design android-textinputlayout

4
推荐指数
1
解决办法
534
查看次数