Я расширяю com.google.android.material.chip.Chip
У меня есть текст, который я измеряю в onMeasure
.
Мой расчет говорит, что текст может поместиться в пространстве чипа, но на самом деле я вижу текст обрезан.
Я не ожидал бы усечения, так как я измеряю перед передачей макета.
* Я использую самый большой размер дисплея, самый большой размер шрифта, шрифты Украины.
Должен ли я как-то изменить свой измерительный код?
private String getLongestPossibleChipText(int textMaxWidth) {
final MarginLayoutParams layoutParams = (MarginLayoutParams) getLayoutParams();
final View parent = (View) getParent();
final int parentPaddingLeft = parent.getPaddingLeft();
final int parentPaddingRight = parent.getPaddingRight();
final int paddingLeft = getPaddingLeft();
final int paddingRight = getPaddingRight();
final int leftMargin = layoutParams.leftMargin;
final int rightMargin = layoutParams.rightMargin;
final int currentTextMaxWidth =
parentWidth
- (parentPaddingLeft
+ parentPaddingRight
+ paddingLeft
+ paddingRight
+ leftMargin
+ rightMargin);
final TextPaint paint = getPaint();
for (String chipText : chipTexts) {
if (paint.measureText(chipText) <= currentTextMaxWidth) {
return chipText;
}
}
return Iterables.getLast(chipTexts);
}