建议的方法是向drawableLeft
添加EditText,
,但EditText
下划线一直延伸到drawable下方。
另一种可能的方法是在ImageView
的左侧创建TextInputLayout
。这样做的问题是很难让图标与EditText
完全一致,因为TextInputLayout
的错误消息可以切换额外的高度,具体取决于它是否可见。这需要计算TextInputLayout
的错误消息视图高度,并在图标下放置一个占位符,以便在错误消息可见时切换其可见性。
使用TextInputLayout
来实现此设计有什么好方法吗?
答案 0 :(得分:0)
这项工作对我来说,诀窍是将它全部放入水平方向的LinearLayout。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:src="@drawable/ic_user_login_dark"/>
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="32dp"
android:id="@+id/username">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/hint_username"
android:inputType="textPersonName" />
</android.support.design.widget.TextInputLayout>
</LinearLayout>