如何浮动提示正确?

时间:2019-07-16 10:36:04

标签: java android

我正在尝试在Android中实现某种“外观”,而这种外观在iOS上很快就可以实现。

到目前为止,这是我的代码:

  <!-- Email Label -->
        <android.support.design.widget.TextInputLayout
            android:id="@+id/tilUsername"
            android:layout_width="match_parent"
            android:layout_height="80dp"
            android:layout_marginLeft="@dimen/padding_large"
            android:layout_marginRight="@dimen/padding_large"
            android:layout_marginBottom="1dp"
            android:layout_marginTop="4dp"
            app:hintTextAppearance="@style/TextAppearance.App.TextInputLayout"
            android:textColorHint="@color/niceblue"
            android:hint="Username"
            android:theme="@style/TextAppearance.App.TextLabel">
            <EditText android:id="@+id/txtUsername"
                android:layout_width="match_parent"
                style="@style/AppTheme"
                android:background="@drawable/textlines_hint"
                android:ems="10"
                android:padding="6dp"
                android:singleLine="true"
                android:inputType="textEmailAddress"
                android:layout_height="64dp"
                android:hint="Login Email" />
        </android.support.design.widget.TextInputLayout>

但是,由于提示和标签重叠,因此产生的效果不好。

enter image description here

我要的是ios变体外观。

enter image description here

有人对我们如何正确对齐提示(以及可选的文本)有任何想法,但是由于它仍然是“罗马”字母,因此不能为rtl,我只要求它提示正确的对齐方式和文本正确的对齐方式,包括提示

1 个答案:

答案 0 :(得分:0)

TextInputEditText使用单个提示或占位符总是更好,它应该是TextInputEditText的一部分,并且TextInputLayout的父级将使用子视图中的提示。

但是由于EditTextTextInputLayout都需要不同的提示和占位符。您可以尝试在EditText中使用具有透明文本颜色的幻觉,直到其不聚焦为止。

您的原始布局:

<android.support.design.widget.TextInputLayout
        ....//Should be same as your xml properties
         >
        <EditText android:id="@+id/txtUsername"
            ...//Should be same as your xml properties
            android:textColorHint="@drawable/hint_selector"
            ...
         />
    </android.support.design.widget.TextInputLayout>

颜色选择器-EditText提示-hint_selector

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:state_focused="true" android:color="?android:textColorHint" />
  <item android:color="@android:color/transparent" />
</selector>

上面的选择器将使EditText中的提示颜色透明,直到该视图未聚焦且不会与您的TextInputLayout重叠为止。