所以基本上我的想法是创建一个带有边界的浮动标签EditText。 情况是当EditText不在焦点时,提示应该垂直居中,但是当它被聚焦时,它将在内部扩展。
上面一个是焦点,下面一个没有焦点。
请帮忙。
编辑密码布局:
<RelativeLayout
android:id="@+id/relativePsw"
android:layout_width="match_parent"
android:layout_height="56dp"
android:background="@drawable/psw_et_boundary">
<android.support.design.widget.TextInputLayout
android:id="@+id/etPasswordLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:passwordToggleDrawable="@drawable/password_drawable"
app:passwordToggleEnabled="true">
<android.support.design.widget.TextInputEditText
android:id="@+id/passwordEt"
style="@style/EditTextCustomHolo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#0000"
android:hint="@string/password"
android:inputType="textPassword"
android:maxLines="1" />
</android.support.design.widget.TextInputLayout>
</RelativeLayout>
Java:
最初设置填充:
mRelativePsw.setPadding(dpToPx(14), 0, dpToPx(14), 0);
mPasswordEt.setPadding(0, dpToPx(10), 0, 0);
OnFocusChange:
mPasswordEt.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View view, boolean focus) {
if (focus) {
mPasswordEt.setPadding(dpToPx(14), dpToPx((float) 6.3), dpToPx(14), 0);
mRelativePsw.setPadding(0, dpToPx(12), 0, 0);
Utils.showSoftKeyboard(LoginActivity.this, mPasswordEt);
} else {
if (mPasswordEt.getText().toString().trim().equalsIgnoreCase("")) {
mPasswordEt.setPadding(dpToPx(14), 0, dpToPx(14), 0);
mRelativePsw.setPadding(0, dpToPx(10), 0, 0);
}
}
}
});
处理这些中的每一个都是一个漫长的过程。建议提供帮助。
答案 0 :(得分:0)
我的建议是,将您的边框设计可绘制文件添加到TextInputLayout作为背景,并将一些填充设置为大约8dp将是正确的。然后将TextInputEditText的背景设置为
android:background="@android:color/transparent"
因此该编辑文本的默认行将消失,当关注该编辑文本时,当您输入其中的内容时,标签将位于该边框内。
尝试使用此代码,您希望标签位于中心位置。
尝试这是正确的,因为它在中心给出浮动标签。
<android.support.design.widget.TextInputLayout
android:id="@+id/input_layout_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:gravity="center">
<EditText
android:id="@+id/input_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:gravity="center"
android:hint="Enter Name"/>
</android.support.design.widget.TextInputLayout>