标签: android-textinputlayout

XML 中的 TextInputEditText requestFocus 导致呈现问题

似乎我无法放入requestFocus我的内部,TextInputEditText因为它会使用此堆栈跟踪在预览屏幕上导致渲染问题:

android.content.res.Resources$NotFoundException: Unable to find resource ID #0x1ff0005
at android.content.res.Resources.getResourceName(Resources.java:2235)
at android.content.res.Resources.loadDrawableForCookie(Resources.java:2602)
at android.content.res.Resources.loadDrawable(Resources.java:2540)
at android.content.res.Resources.getDrawable(Resources.java:806)
at android.content.Context.getDrawable(Context.java:458)
at android.widget.Editor.updateCursorPosition(Editor.java:2007)
at android.widget.Editor.updateCursorsPositions(Editor.java:1703)
at android.widget.TextView.getUpdatedHighlightPath(TextView.java:5526)
at android.widget.TextView.onDraw(TextView.java:5713)
at android.view.View.draw(View.java:16178)
at android.view.View.draw(View.java:16090)
at android.view.ViewGroup.drawChild_Original(ViewGroup.java:3609)
at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:61)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.draw(View.java:16181)
at android.support.design.widget.TextInputLayout.draw(TextInputLayout.java:845)
at android.view.View.draw(View.java:16090)
at android.view.ViewGroup.drawChild_Original(ViewGroup.java:3609)
at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:61)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.draw(View.java:16088)
at android.view.ViewGroup.drawChild_Original(ViewGroup.java:3609)
at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:61)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.draw(View.java:16088)
at android.view.ViewGroup.drawChild_Original(ViewGroup.java:3609)
at android.view.ViewGroup_Delegate.drawChild(ViewGroup_Delegate.java:61)
at android.view.ViewGroup.drawChild(ViewGroup.java:3609)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3399)
at android.view.View.draw(View.java:16088)
at android.view.ViewGroup.drawChild_Original(ViewGroup.java:3609) …
Run Code Online (Sandbox Code Playgroud)

xml android android-layout android-support-library android-textinputlayout

2
推荐指数
1
解决办法
2104
查看次数

如何自定义android passwordToggleDrawable

Android支持库添加了TextInputLayout,添加了浮动标签和密码切换可访问性等几项功能

我的问题是如何自定义passwordVisisbilityDrawable,以便显示我自己的可见和隐藏状态图标.

此外,当我启用passwordToggleVisibility时,高度将增加.

android android-textinputlayout

2
推荐指数
1
解决办法
2880
查看次数

是否可以在 TextInputLayout 中为错误标签保留空间?

我的布局中有多个 TextInputLayouts,我需要验证字段(如果它们无效,则显示错误文本)。

但是TextView包含错误是由TextInputLayout动态添加的,因此它会更改布局高度,并且底部的所有视图都降低了 added 的高度TextView

所以问题是:即使没有显示错误,我是否可以为错误文本保留空间?

android android-textinputlayout textinputlayout

2
推荐指数
1
解决办法
115
查看次数

android TextInputLayout 中的表单验证无法正常工作

我正在尝试验证表单,我正在使用 TextInputLayout 错误来显示错误,当我在空表单中单击提交按钮时,错误仅显示在名称字段中,并且在我填写名称文本时未隐藏错误。其他字段也没有显示验证错误。

活动表单.xml

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

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:orientation="vertical">

        <android.support.design.widget.TextInputLayout
            android:id="@+id/nameTextInputLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.design.widget.TextInputEditText
                android:id="@+id/formNameEdit"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/form_hint_name"
                android:inputType="textPersonName"
                android:imeOptions="actionNext"
                android:maxLines="1" />
        </android.support.design.widget.TextInputLayout>

        <android.support.design.widget.TextInputLayout
            android:id="@+id/EmailTextInputLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.design.widget.TextInputEditText
                android:id="@+id/formEmailEdit"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/form_hint_email"
                android:inputType="textEmailAddress"
                android:imeOptions="actionNext"
                android:maxLines="1" />

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

        <android.support.design.widget.TextInputLayout
            android:id="@+id/PhoneTextInputLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.design.widget.TextInputEditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/form_hint_mobile_number"
                android:imeOptions="actionNext"
                android:id="@+id/formMobileEdit"
                android:inputType="number"
                android:maxLines="1" />

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

        <android.support.design.widget.TextInputLayout
            android:id="@+id/AlternateTextInputLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.design.widget.TextInputEditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="@string/form_hint_alternate_number"
                android:imeOptions="actionNext"
                android:id="@+id/formAlternateEdit"
                android:inputType="number"
                android:maxLines="1" />

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

        <android.support.design.widget.TextInputLayout
            android:id="@+id/JEETextInputLayout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">

            <android.support.design.widget.TextInputEditText
                android:layout_width="match_parent" …
Run Code Online (Sandbox Code Playgroud)

android android-edittext android-textinputlayout

2
推荐指数
1
解决办法
4575
查看次数

我试图让 AutoCompleteTextView 看起来像一个材质 Edittext

我试图让AutoCompleteTextView这个图像看起来像https://ibb.co/ZJxmgK5,但无法做到这一点。轮廓框在结果中不可见

下面是我目前的代码。早些时候我尝试添加一个EditTextTextInputLayout但现在我想在这个中添加自动完成。

<com.google.android.material.textfield.TextInputLayout
                    android:id="@+id/input_layout_holiday_destination"
                    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:hint="@string/lbl_destination_big">
<AutoCompleteTextView
                        android:id="@+id/edittext_holiday_destination"
                        style="@style/Base.Widget.AppCompat.EditText"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_gravity="center_vertical"
                        android:layout_weight="10"
                        android:background="@android:color/transparent"
                        android:hint="@string/lbl_destination"
                        android:layout_marginLeft="@dimen/margin8"
                        android:singleLine="true"
                        android:lines="1"
                        android:textSize="25sp"
                        android:nextFocusDown="@+id/txv_holiday_num_of_nights"
                        android:imeOptions="actionNext"
                        android:textCursorDrawable="@drawable/edittext_cursor_drawable"/>
                    />
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

预期的结果是上面给出了 URL 的图像。

android autocompletetextview material-design android-textinputlayout material-components-android

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

在 TextInputLayout 中切换密码的回调

我为我的密码字段选择了 TextInputEditText,以使用切换密码功能。

这是我的 xml 代码:

        <com.google.android.material.textfield.TextInputLayout
        android:layout_width="@dimen/login_width"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="@dimen/password_margin_top"
        app:hintEnabled="false"
        app:passwordToggleDrawable="@drawable/password_toggle_drawable"
        app:passwordToggleEnabled="true">

        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/my_login_password"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:fontFamily="sans-serif"
            android:hint="@string/password"
            android:inputType="textPassword"
            android:nextFocusDown="@+id/my_login_login"
            android:padding="@dimen/field_padding" />
    </com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

我必须对切换密码进行一些其他布局更改。在 TextInputLayout 中是否有任何可用的回调?

android android-textinputlayout android-textinputedittext

2
推荐指数
1
解决办法
1049
查看次数

如何在 TextInputLayout unfocus 中更改边框和颜色?

如何在未TextInputLayout聚焦时更改边框和颜色?

<com.google.android.material.textfield.TextInputLayout
        android:layout_width="match_parent"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
        android:layout_height="wrap_content"
        app:boxStrokeWidth="4dp"
        app:boxStrokeColor="@color/colorPrimary"
        app:layout_constraintTop_toBottomOf="@id/a">

        <com.google.android.material.textfield.TextInputEditText
            android:layout_width="match_parent"
            android:hint="@string/app_name"
            android:textColorHint="@color/colorPrimary"
            android:layout_height="wrap_content"/>
    </com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

我尝试:

app:boxStrokeWidth="4dp"
app:boxStrokeColor="@color/colorPrimary"
Run Code Online (Sandbox Code Playgroud)

但是,不能在不聚焦的情况下工作

android android-xml android-textinputlayout material-components material-components-android

2
推荐指数
1
解决办法
3216
查看次数

Android:以编程方式添加 TextInputLayout

我正在尝试以编程方式将带有 EditText 的 TextInputLayout 添加到 LinearLayout。我的做法:

TextInputLayout textInputLayout = new TextInputLayout(new ContextThemeWrapper(getContext(), R.style.Widget_MaterialComponents_TextInputLayout_OutlinedBox));
textInputLayout.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
textInputLayout.setHintTextAppearance(R.style.Base_Widget_MaterialComponents_TextInputLayout_TextInputLayout);

TextInputEditText editText = new TextInputEditText(getContext());
editText.setHint("test");

textInputLayout.addView(editText, new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
linearLayout.addView(textInputLayout);
Run Code Online (Sandbox Code Playgroud)

然而,结果看起来非常错误:

越野车视图


奇怪的是,通过 XML 添加相同的 TextInputLayout 有效:

<com.google.android.material.textfield.TextInputLayout
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="kommentar"
    app:hintTextAppearance="@style/Base.Widget.MaterialComponents.TextInputLayout.TextInputLayout">

    <com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

通过 xml 工作视图


现在,我需要补充一点,在升级到Material 1.1之前,编程方法是有效的。我只使用材料组件。我怎样才能解决这个问题?

java android material-design android-textinputlayout material-components-android

2
推荐指数
1
解决办法
1146
查看次数

问题:带有提示重叠的 OutlinedBox 错误的 TextInputLayout

当我想在 EditText 中写我的提示与 OutlinedBox 重叠时,我的提示有问题,所以我不明白是什么问题。所以这是我的代码

        <com.google.android.material.textfield.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:errorEnabled="true"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">

        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/text_input_username"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="10dp"
            android:drawableStart="@drawable/ic_action_name"
            android:hint="@string/Enter_Username"
            android:inputType="textPersonName"/>
    </com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

我的问题:

在此处输入图片说明

xml android android-textinputlayout textinputlayout material-components-android

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

如何在“TextInputLayout”的右端动态添加一个drawable?

我正在尝试制作类似以下示例的内容:

带有复选后缀图标的用户名文本字段的屏幕截图

我希望在我从服务器验证用户名时显示可绘制对象。

我正在使用 Material Design 文本输入字段和 EditText。是的,我可以使用 simpleEditText和 an 来完成ImageView,但我想使用标准元素。

我查看了官方文档,有一种方法可以使用XML在右上角添加图像,但我想以编程方式添加它。

android android-edittext android-textinputlayout material-components-android

2
推荐指数
1
解决办法
1578
查看次数