Android:TextInputLayout不同inputTypes的不同间距

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android:TextInputLayout不同inputTypes的不同间距相关的知识,希望对你有一定的参考价值。

我的问题是,我希望TextInputLayouts的间距完全相同,无论inputType

enter image description here

马上:

  1. 文本和线之间的android:inputType="textPassword"空间大于android:inputType="textNoSuggestions"中这两者之间的间距
  2. 文本和标签之间的间距也是如此。

如何使两个间距相等?

我的两个字段的XML:

<android.support.design.widget.TextInputLayout
                android:id="@+id/layout_login"
                style="@style/text_input_layout"
                android:layout_below="@+id/image_app_logo"
                android:layout_marginTop="30dp"
                app:errorEnabled="true">

                <android.support.v7.widget.AppCompatEditText
                    android:id="@+id/edit_text_login"
                    style="@style/app_edit_text"
                    android:hint="@string/email"
                    android:inputType="textNoSuggestions"
                    android:maxLength="@integer/max_characters_in_edit_text"
                    android:privateImeOptions="nm"
                    app:layout_constraintLeft_toLeftOf="parent"
                    app:layout_constraintRight_toRightOf="parent" />
            </android.support.design.widget.TextInputLayout>

            <android.support.design.widget.TextInputLayout
                android:id="@+id/layout_login_password"
                style="@style/text_input_layout"
                android:layout_below="@+id/layout_login"
                app:errorEnabled="true"
                app:passwordToggleEnabled="true"
                app:passwordToggleTint="@color/colorTextTiny">

                <android.support.v7.widget.AppCompatEditText
                    android:id="@+id/edit_text_password"
                    style="@style/app_edit_text"
                    android:layout_height="wrap_content"
                    android:hint="@string/password"
                    android:imeOptions="actionDone"
                    android:inputType="textPassword"
                    android:maxLength="@integer/max_characters_in_edit_text" />
            </android.support.design.widget.TextInputLayout>
答案

试试这种方式

<android.support.design.widget.TextInputLayout
        android:id="@+id/login_input_password"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/size15"
        android:hint="@string/password"
        android:textColorHint="@color/colorblueLight
        app:passwordToggleEnabled="true">

        <EditText
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:inputType="textPassword"
                 android:longClickable="false"
                 android:maxLines="1"
                 android:textColor="@color/colorWhite" />

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

如果你想改变passwordToggle的颜色

private TextInputLayout inputPassword;
inputPassword = (TextInputLayout) findViewById(R.id.login_input_password);

inputPassword.setPasswordVisibilityToggleEnabled(true);
inputPassword.setPasswordVisibilityToggleTintList(ColorStateList.valueOf(ContextCompat.getColor(this, R.color.colorWhite)));
另一答案

我设法通过设置上部android:paddingBottom="10dp"android:paddingTop="10dp"EditText来解决这个问题。虽然我想指出这个解决方案显然是一个丑陋的解决方案 - 我仍然会欣赏更好的方法。

以上是关于Android:TextInputLayout不同inputTypes的不同间距的主要内容,如果未能解决你的问题,请参考以下文章

进阶篇Android学习笔记——TextInputLayout

如何在新的 android 设计库中使用 TextInputLayout

Android:TextInputLayout - 自定义提示、底线和错误消息的颜色

如何在android中动态设置样式为TextInputLayout?

Android Material Design--TextInputLayout

Android - 如何更改 TextInputLayout(材料组件)中的文本颜色?