如何仅在填充(或触摸)EditText 后显示我的 DrawableRight 图像?
How to Show my DrawableRight image only after EditText is filled (or touched)?
我有一个 Edittext ,用户可以在其中输入他们的 10 位手机号码。我希望当用户完成输入 10 位数字时,drawableRight 应该是可见的。我该怎么做?
DrawableRight 最初是 hidden/invisible。
还有第二种方式,当Edittext被触摸时,可以看到drawable right。
请帮帮我。
<LinearLayout
android:id="@+id/list1mobile"
android:layout_width="411dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="3dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:orientation="horizontal"
android:padding="10dp"
app:layout_constraintEnd_toEndOf="@+id/list1email"
app:layout_constraintStart_toStartOf="@+id/list1email"
app:layout_constraintTop_toBottomOf="@+id/list1email">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="start"
android:orientation="vertical"
android:paddingLeft="24dp"
android:paddingStart="24dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginTop="1dp"
android:fontFamily="@font/avenibook"
android:inputType="none"
android:text="Mobile Number "
android:textAllCaps="false"
android:textColor="@color/blue"
android:textSize="12sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginTop="1dp"
android:fontFamily="@font/avenibook"
android:inputType="none"
android:text="+91 "
android:textColor="@color/white"
android:textSize="16sp"
android:textStyle="bold" />
<EditText
android:id="@+id/mobiledes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginTop="1dp"
android:fontFamily="@font/avenirltsdoman"
android:inputType="number"
android:maxLength="10"
android:maxLines="1"
android:background="@null"
android:hint="Enter Mobile number"
android:textColorHint="#87888A"
android:textColor="@color/white"
android:textSize="16sp"
android:textStyle="bold"
android:drawableRight="@drawable/ic_verifybutton"
android:layout_marginStart="2dp"
android:drawableEnd="@drawable/ic_verifybutton"
android:drawablePadding="2dp"/>
</LinearLayout>
</LinearLayout>
你不能为此使用线性布局,因为线性布局将所有设计都置于线性状态,因此你不能将其放在可绘制对象中。
考虑在 edittext 中将输入类型更改为 Phone。如果您希望它位于开头,请将 R.drawable.your_icon
的位置更改为第一个参数。
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//hides the drawable
if(editText.getText().toString().length()!=10)
editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
//shows the drawable
else
editText.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.your_icon, 0);
}
@Override
public void afterTextChanged(Editable s) {
}
});
DrawableRight 最初是 hidden/invisible。
还有第二种方式,当Edittext被触摸时,可以看到drawable right。
请帮帮我。
<LinearLayout
android:id="@+id/list1mobile"
android:layout_width="411dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="3dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:orientation="horizontal"
android:padding="10dp"
app:layout_constraintEnd_toEndOf="@+id/list1email"
app:layout_constraintStart_toStartOf="@+id/list1email"
app:layout_constraintTop_toBottomOf="@+id/list1email">
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="start"
android:orientation="vertical"
android:paddingLeft="24dp"
android:paddingStart="24dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginTop="1dp"
android:fontFamily="@font/avenibook"
android:inputType="none"
android:text="Mobile Number "
android:textAllCaps="false"
android:textColor="@color/blue"
android:textSize="12sp"
android:textStyle="bold" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginTop="1dp"
android:fontFamily="@font/avenibook"
android:inputType="none"
android:text="+91 "
android:textColor="@color/white"
android:textSize="16sp"
android:textStyle="bold" />
<EditText
android:id="@+id/mobiledes"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="2dp"
android:layout_marginTop="1dp"
android:fontFamily="@font/avenirltsdoman"
android:inputType="number"
android:maxLength="10"
android:maxLines="1"
android:background="@null"
android:hint="Enter Mobile number"
android:textColorHint="#87888A"
android:textColor="@color/white"
android:textSize="16sp"
android:textStyle="bold"
android:drawableRight="@drawable/ic_verifybutton"
android:layout_marginStart="2dp"
android:drawableEnd="@drawable/ic_verifybutton"
android:drawablePadding="2dp"/>
</LinearLayout>
</LinearLayout>
你不能为此使用线性布局,因为线性布局将所有设计都置于线性状态,因此你不能将其放在可绘制对象中。
考虑在 edittext 中将输入类型更改为 Phone。如果您希望它位于开头,请将 R.drawable.your_icon
的位置更改为第一个参数。
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//hides the drawable
if(editText.getText().toString().length()!=10)
editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
//shows the drawable
else
editText.setCompoundDrawablesWithIntrinsicBounds(0,0,R.drawable.your_icon, 0);
}
@Override
public void afterTextChanged(Editable s) {
}
});