【问题标题】:Android: TextInputLayout different spacing of different inputTypesAndroid:TextInputLayout不同inputTypes的不同间距
【发布时间】:2017-12-29 10:48:00
【问题描述】:

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

现在:

  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>

【问题讨论】:

  • 可能是这个问题,因为app:passwordToggleEnabled="true" 尝试删除它并运行项目
  • @ND1010_ 是的,确实解决了这个问题,但是,它也会使眼睛图标从密码编辑文本中消失(我必须让它可见)
  • 好的,等一下,我会发布我的答案

标签: android android-layout android-edittext android-textinputlayout


【解决方案1】:

试试这个方法

<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)));

【讨论】:

  • 不幸的是,我在样式中看不到 TextAppearance.App.TextInputLayout。我可以使用的唯一一个有TextInputLayout 的是@style/Widget.Design.TextInputLayout,它不能解决问题:(
  • &lt;item name="android:textColor"&gt;@color/colorblueLight&lt;/item&gt; 只是自定义我的editText文本更改文本颜色
  • @Simon 有帮助吗?
  • 这不起作用,因为我不想改变眼睛图标的颜色,我只希望我列出的间距与普通textInputLayout的间距相同
  • 是的,@Simon 不会改变它的颜色,它只是为了通知阅读
【解决方案2】:

我通过设置上层EditTextandroid:paddingBottom="10dp"android:paddingTop="10dp" 设法解决了这个问题。 虽然我想指出这个解决方案显然是一个丑陋的解决方案 - 我仍然希望有更好的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多