标签: textinputlayout

Android Material 文本输入布局结束图标不可见但正常

我最近发现了 Material Design TexInputLayout 的一个错误以及它使 endIcon 可见的方式。

假设您已正确设置所有内容并启用了结束图标,例如:

inputLayout.endIconMode == END_ICON_CLEAR_TEXT
Run Code Online (Sandbox Code Playgroud)

问题是,如果你定义一个 focusListener 像:

inputLayout.editText?.setOnFocusChangeListener { view, hasFocus -> ...}
Run Code Online (Sandbox Code Playgroud)

并导航到其中包含此 textInputLayout 的屏幕,其中包含一些已填充的文本,如下图所示

1

您会注意到 endIcon 没有显示,但如果您点击它应该在的位置,它就会起作用。

即使通过使其可见来确保它应该显示也inputLayout.isEndIconVisible = 无济于事。通过调试,您可以看到您点击了public void setEndIconVisible(boolean visible)真实值,但仍然没有使图标可见。

我找到了一个解决方案,我已将其作为答案发布。

xml user-interface android material-design textinputlayout

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

TextInputLayout提示填充不起作用

我想给TextInputLayout中的edittext提示添加填充

电子邮件地址是提示,样本是文本

图片

也尝试了此解决方案,但没有用。

更改支持设计库23.1.0后面临此问题

这是我的代码

       <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp">

            <android.support.v7.widget.AppCompatEditText
                android:id="@+id/edtEmailAddress"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/border_round_edt_grey"
                android:focusableInTouchMode="true"
                android:hint="@string/emailadd"
                android:padding="10dp"
                android:singleLine="true" />
        </android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

android textinputlayout

3
推荐指数
1
解决办法
3093
查看次数

使用具有约束布局的设计支持库

我尝试在 ConstraintLayout 中使用支持设计库中的 TextInputLayout,但出现错误:

android.widget.LinearLayout$LayoutParams 
cannot be cast to android.support.constraint.ConstraintLayout$LayoutParams
Run Code Online (Sandbox Code Playgroud)

如何实现与 support.design.widget.TextInputLayout 相同的功能,但使用 ConstraintLayout?

完整布局在这里:http : //pastebin.com/TjC0FAdS

问题是:

<android.support.constraint.ConstraintLayout 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:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/constraintLayout">

    <android.support.design.widget.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <AutoCompleteTextView
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:singleLine="true"
            android:id="@+id/email"
            android:hint="@string/prompt_email"
            app:layout_constraintLeft_toRightOf="@+id/imageView3"
            android:layout_marginStart="8dp"
            app:layout_constraintTop_toBottomOf="@+id/logo"
            android:layout_marginTop="16dp"
            app:layout_constraintRight_toRightOf="@+id/constraintLayout"
            android:layout_marginEnd="16dp" />
    </android.support.design.widget.TextInputLayout>
</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

android textinputlayout android-constraintlayout

3
推荐指数
1
解决办法
1737
查看次数

应用程序:passwordToggleEnabled="true" 不起作用

我正在尝试实现一个登录页面,这是我TextInputLayout的密码字段。

<android.support.design.widget.TextInputLayout
        android:id="@+id/password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:layout_marginRight="15dp"
        android:hint="Password"
        app:passwordToggleDrawable="@drawable/eye_outline"
        android:theme="@style/GFSTextInputLayoutTheme"
        app:passwordToggleEnabled="true">

        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="textPassword"
            android:textColor="@color/black"
            android:textColorHint="@color/light_grey"
            android:textSize="20dp" />

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

但不知何故,app:passwordToggleEnabled="true"似乎不起作用。

在此处输入图片说明

这是我的 gradle 导入:

compile 'com.android.support:design:27.1.1'
compile 'com.android.support:support-v4:27.1.1'
compile 'com.android.support:appcompat-v7:27.1.1'
compile 'com.android.support:recyclerview-v7:27.1.1'
compile 'com.android.support:support-vector-drawable:27.1.1'
compile 'com.android.support.constraint:constraint-layout:1.1.0'
compile 'com.android.support:recyclerview-v7:27.1.1'
compile 'com.android.support:cardview-v7:27.1.1'
Run Code Online (Sandbox Code Playgroud)

编辑:

样式文件

<style name="GFSTextInputLayoutTheme" parent="TextAppearance.AppCompat">
    <!-- Hint color and label color in FALSE state -->
    <item name="android:textColorHint">@color/light_grey</item>
    <!-- Label color in TRUE state and bar color FALSE and TRUE State -->
    <item name="colorAccent">@color/light_grey</item>
    <item name="colorControlNormal">@color/light_grey</item>
    <item …
Run Code Online (Sandbox Code Playgroud)

java passwords android android-textinputlayout textinputlayout

3
推荐指数
1
解决办法
5646
查看次数

始终使文本输入布局中的前缀文本像提示一样可见

我在文本输入布局中有一个前缀文本,但仅当我单击文本输入编辑文本(位于具有前缀文本的文本输入布局内)时,它才会显示。如何使前缀文本始终显示提示

下面是我的文本输入编辑文本


<com.google.android.material.textfield.TextInputLayout
                android:id="@+id/til_number"
                style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/til_country"
                android:layout_marginStart="30dp"
                android:layout_marginLeft="30dp"
                android:layout_marginTop="10dp"
                android:layout_marginEnd="30dp"
                android:layout_marginRight="30dp"
                android:layout_marginBottom="10dp"
                android:padding="5dp"
                app:boxBackgroundColor="#EFEFF2"
                app:prefixText="+01&#160;-&#160;"
                app:shapeAppearanceOverlay="@style/RoundedTextInputLayout">

                <com.google.android.material.textfield.TextInputEditText
                    android:id="@+id/et_first_name"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:hint="@string/number"
                    android:inputType="phone"
                    android:maxLength="100"
                    android:textSize="15sp" />

            </com.google.android.material.textfield.TextInputLayout>


Run Code Online (Sandbox Code Playgroud)

我想实现的是

+01&#160;-&#160;

Run Code Online (Sandbox Code Playgroud)

前缀中的上述文本应始终显示

我尝试执行以下操作


app:prefixTextColor="@color/secondaryDarkColor"

Run Code Online (Sandbox Code Playgroud)

prefix android-studio android-textinputlayout textinputlayout

3
推荐指数
1
解决办法
4332
查看次数

在iOS(Objc)中是否有像'textinputlayout`这样的第三方库

我在iOS(Objc)中搜索一个textinputLayout像android一样的库.

这里是更清晰的视频网址, https://youtu.be/YnQHb0fNtF8

任何人都可以告诉我是否有任何第三方库可用,或者我需要在动画的帮助下编写自己的代码.

objective-c ios textinputlayout

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

Android TextInputLayout未显示错误

我正在使用带有TextInputLayout的EditText.这是我用来显示错误的代码.

  private boolean validateEmail() {
    String email = inputEmail.getText().toString().trim();

    if (email.isEmpty() || !isValidEmail(email)) {
        inputLayoutEmail.setErrorEnabled(true);
        inputLayoutEmail.setError(getString(R.string.err_msg_email));
        requestFocus(inputEmail);
        return false;
    } else {
        inputLayoutEmail.setErrorEnabled(false);
    }

    return true;
}
Run Code Online (Sandbox Code Playgroud)

我在edittext的textwatcher中调用此方法,如此链接http://www.androidhive.info/2015/09/android-material-design-floating-labels-for-edittext/

一旦我输入有效输入然后清除它,它将按预期显示错误消息,但如果我再次输入文本然后再次清除它将无法工作.我没有显示任何错误消息.

我正在使用compile 'com.android.support:design:23.1.0'图书馆.

inputLayoutEmail.setErrorEnabled(true); 
Run Code Online (Sandbox Code Playgroud)

正在调用,但错误未显示.可能是什么问题?我怎么能解决这个问题?

validation android android-edittext textinputlayout

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

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

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

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

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

android android-textinputlayout textinputlayout

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

问题:带有提示重叠的 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
查看次数

在Fragment中设置错误TextInputLayout

我在设置错误消息时遇到TextInputLayout问题.我在片段中使用以下包'com.android.support:design:23.1.1'.这是代码

if (tvName.getText().toString().trim().isEmpty()) {
        textInputLayoutName.setErrorEnabled(true);
        textInputLayoutName.setError("erreur");
    }
Run Code Online (Sandbox Code Playgroud)

XML部分

       <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:theme="@style/TextLabel"
            android:id="@+id/input_layout_name">
            <EditText
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:id="@+id/name"
                android:hint="@string/name"/>
        </android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

风格

 <style name="TextLabel" parent="TextAppearance.AppCompat">
    <item name="android:textColorHint">@android:color/darker_gray</item>
    <item name="android:textSize">20sp</item>
    <item name="colorAccent">@color/colorPrimary</item>
    <item name="colorControlNormal">#2E7D32</item>
    <item name="colorControlActivated">#1B5E20</item>
</style>
Run Code Online (Sandbox Code Playgroud)

而这里的错误

   FATAL EXCEPTION: main
   Process: com.example.adama.findmypharmacie, PID: 21169
   java.lang.UnsupportedOperationException: Can t convert to color: type=0x2
   at android.content.res.TypedArray.getColor(TypedArray.java:327)
   at android.widget.TextView.<init>(TextView.java:695)
   at android.widget.TextView.<init>(TextView.java:637)
   at android.widget.TextView.<init>(TextView.java:633)
   at android.support.design.widget.TextInputLayout.setErrorEnabled(TextInputLayout.java:380) 
   at android.support.design.widget.TextInputLayout.setError(TextInputLayout.java:425)
   at com.example.adama.findmypharmacie.fragments.MainFragment.onClick(MainFragment.java:185)
   at android.view.View.performClick(View.java:4463)
   at android.view.View$PerformClick.run(View.java:18789)
   at android.os.Handler.handleCallback(Handler.java:808)
   at android.os.Handler.dispatchMessage(Handler.java:103)
   at android.os.Looper.loop(Looper.java:193)
   at android.app.ActivityThread.main(ActivityThread.java:5299)
   at java.lang.reflect.Method.invokeNative(Native Method)
   at java.lang.reflect.Method.invoke(Method.java:515) …
Run Code Online (Sandbox Code Playgroud)

android fragment textinputlayout

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

如何在 Flutter 中限制文本输入中的特殊字符?

我只想使用 Alphabat、空格和“-”作为使用“Textinput”的名称输入。

用法:- 对于用户名输入,我们不希望用户输入“(,),$,%,&,*”字符。

textinputlayout flutter flutter-layout

0
推荐指数
1
解决办法
1971
查看次数