java - 如何正确 float 提示?

标签 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,因为它仍然是“罗马”字母,我只需要它提示右对齐和文本右对齐,包括提示

最佳答案

最好为 TextInputEditText 提供一个提示或占位符,它应该是 TextInputEditText 的一部分,并且 TextInputLayout 父级将使用 subview 中的提示。

但是因为 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 中的提示颜色设为透明,直到该 View 未聚焦,这不会与您的 TextInputLayout 重叠。

关于java - 如何正确 float 提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57055330/

相关文章:

java - Spring中Thymeleaf异常解析文档

Android 工具栏 searchView 太宽无法移动其他项目

Android 测试在 Application 类中抛出异常

android - 通过 Intent 传递数据

java - Spring RestController端点全部重定向到 '/'根路由

java - Servlet 的 doFilter 方法中的 StringBuffer 或 StringBuilder?

java - 将一对多文件传递给 NEW-Statement 构造函数

java - IntelliJ编译显示错误

java - 将多条记录写入NFC标签: example source code

android - 使用蓝牙连接 Android 设备?