У меня есть edittext с изображением как выталкиваемый слева с нередактируемым префиксом editext, но теперь я хотел сделать его для поддержки rtl. Несмотря на мои усилия, я не могу поддержать rtl.Поддержка RTL для пользовательских editext для выделенных левых
Мой заказ класс следующим образом,
public class PrefixedEditText extends TextInputEditText {
private String mPrefix = "+"; // can be hardcoded for demo purposes
private Rect mPrefixRect = new Rect(); // actual prefix size
public PrefixedEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
getPaint().getTextBounds(mPrefix, 0, mPrefix.length(), mPrefixRect);
mPrefixRect.right += getPaint().measureText(" "); // add some offset
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawText(mPrefix, super.getCompoundPaddingLeft(), getBaseline(), getPaint());
}
@Override
public int getCompoundPaddingLeft() {
return super.getCompoundPaddingLeft() + mPrefixRect.width();
}
}
Мой XML вызов этого класса заключается в следующем,
<cl.dd.ui.PrefixedEditText
style="@style/edittext"
android:id="@+id/etCode"
android:maxLength="3"
android:drawableLeft="@drawable/icon_phone_number"
android:drawableStart="@drawable/icon_phone_number"
android:minWidth="@dimen/dim_img_width"
android:hint="@string/s_login_code"
android:tag="@string/s_login_country_code"
android:inputType="number"/>
ли вы попробовать это на API 17+ или ниже? –
Да, но не работает. и в настоящее время он лечит его на marshmellow .. это хорошо с английским, но когда приложение открыто в арабском режиме, префикс не появился. – TheReprator
попробуйте 'drawableEnd' или' drawableRight' и посмотрите, не изменится ли он автоматически. –