我試圖在 EditText 中有可見的線條。我對 EditText with English Text 得到的結果感到滿意,但是當我使用“阿拉伯語”之類的語言時,阿拉伯語文本會在每一行的下劃線下方稍稍低于下劃線。您可以在下面的圖片中看到問題:
?
?
我用于此的代碼如下所示:
public class UnderlinedEditText extends androidx.appcompat.widget.AppCompatEditText {
private final Rect mRect;
public Paint mPaint;
public UnderlinedEditText(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
mRect = new Rect();
mPaint = new Paint();
mPaint.setStyle(Paint.Style.STROKE);
mPaint.setColor(Color.BLACK);
}
@Override
protected void onDraw(Canvas canvas) {
int height = getHeight();
int line_height = getLineHeight();
int count = height / line_height;
if (getLineCount() > count){
count = getLineCount();
}
Rect r = mRect;
Paint paint = mPaint;
int baseline = getLineBounds(0, r);
for (int i = 0; i < count; i ) {
canvas.drawLine(r.left, baseline 1, r.right, baseline 1, paint);
baseline = getLineHeight();
}
super.onDraw(canvas);
}
我試過 setElegantTextHeight(true) 但沒有效果,我認為阿拉伯語有額外的填充/高度但我找不到解決方案。
任何人都可以幫忙嗎?
uj5u.com熱心網友回復:
它通過使用下一行代碼來解決:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
setFallbackLineSpacing(false);
}
問題是android自動使用后備行間距。現在一切都很好:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/513318.html
下一篇:使用ArrayAdapter設定選定項的帶有AutoCompleteTextView的TextInputLayout
