我试图在 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>
然而,这会产生这种效果,这种效果很糟糕,因为提示和标签重叠..
我想要的是 ios 变体外观..
有谁知道如何右对齐提示(以及可选的文本),但它不能是 RTL,因为它仍然是“罗马”字母,我只需要它提示右对齐和文本右对齐,包括提示
最佳答案
最好为 TextInputEditText
提供一个提示或占位符,它应该是 TextInputEditText
的一部分,并且 TextInputLayout
父级将使用 subview 中的提示。
但是因为 EditText
和 TextInputLayout
都需要不同的提示和占位符。您可以尝试在 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
中的提示颜色设为透明,直到该 View 未聚焦,这不会与您的 TextInputLayout
重叠。
关于java - 如何正确 float 提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57055330/